如何从WebView中的链接打开MobileSafari?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (4)
  • 关注 (0)
  • 查看 (173)

是否有将MobileSafari打开到特定URL的URI方案?

例如,

<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
提问于
用户回答回答于

在iOS 6.0.2中,仍然没有针对MobileSafari的URL方案(见下文)。然而,Federico Viticci发布了一个有趣的黑客这将使你可以从Chrome为iOS调用Safari。它的功能不如Chrometo-Safari书签,但它确实表明从ChromeforIOS推出MobileSafari是可能的。

用户回答回答于

可以使用webkit javascript bridge。https://github.com/marcuswestin/WebViewJavascriptBridge

这允许将消息从javascript发送到Xcode。我使用它关闭html页面中的Web视图:

self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView handler:^(id data, WVJBResponseCallback responseCallback) {
            NSLog(@"Received message from javascript: %@", data);
            if ([data isEqual:@"closewin!"])
                [self dismissModal];
        }];
用户回答回答于

类实现UIWebViewDelegate协议。实现方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

每当用户单击Web视图中的链接时,都会调用此方法。可以获得用户单击的URL,以检查request参数。然后,可以拦截任何想在移动Safari中打开的链接,而不是在WebView中,然后调用-openURL:在共享应用程序上。

[[UIApplication sharedApplication] openURL:URLFromRequest];
用户回答回答于
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答
  • 小书虫

    0 粉丝1 提问2 回答

扫码关注云+社区

领取腾讯云代金券