是否可以通过单击应用程序的WebView中的URL来打开移动Safari?

时间:2016-05-12 07:48:17

标签: ios swift webview safari

这是一个像Open mobile Safari From a link in a webview这样的问题 上述问题的答案提到可以从Chrome打开。
此外,这个question提供了一个解决方案,但在iOS 8上面的webview中无法正常工作。

但是,我想要实现的目标是通过点击应用程序的webview中的URL来打开移动Safari(它可能是gmail客户端,whatsapp,facebook messengers..etc)。

我会描述我的用户场景,以使我的问题更清晰。

我的网站链接网站 A 。用户可以在gmail app,facebook messenger或whatsapp中收到我的网站的URL。当用户点击我的网站的网址时,该网站将直接显示在该应用的网页浏览中。当用户点击网站 A 的链接时,我希望它可以在移动版Safari 中打开网站 A ,而不是留在网页浏览中,因为我需要Safari提供的添加到屏幕功能,以便用户可以更方便地将网站 A 添加到主屏幕。

没有类似'的网址方案。是否有任何safari://xxxJavaScript方法可以实现此目的? 我在网上搜索过,但在上面的iOS 8上找不到可行的解决方案 任何建议表示赞赏。非常感谢!

1 个答案:

答案 0 :(得分:1)

是的。

向您的webview添加委托并实施以下方法:

  optional  func webView(_ webView: UIWebView,
shouldStartLoadWithRequest request: NSURLRequest,
     navigationType navigationType: UIWebViewNavigationType) -> Bool

如下:

func webView(webView: UIWebView, request: NSURLRequest,navigationType: UIWebViewNavigationType) -> Bool {

 //Check if the URL is the one you want in mobile safari   
 if request.URL.absoluteString == THE_URL_TO_OPEN_IN_MOBILE_SAFARI {
        UIApplication.sharedApplication.openURL(request.URL)
        return false
    }else{
        return true
    }
}