这和Open mobile Safari From a link in a webview 是同一个问题.
上面问题的答案提到可以从Chrome打开。
另外,这个 question提供了一个解决方案,但在 iOS 8 以上的 webview 中不起作用。
但是,我想实现的目标是通过单击应用程序(可能是 gmail 客户端、whatsapp、facebook 信使等)的 webview 中的 URL 打开移动 Safari。
我会描述我的用户场景以使我的问题更清楚。
我有一个网站,其中包含网站 A 的链接。用户可能会在 gmail 应用程序、facebook messenger 或 whatsapp 中收到我网站的 URL。当用户点击我网站的 URL 时,该网站将直接显示在应用程序的 webview 中。当用户点击网站A的链接时,我希望它能在mobile Safari中打开网站A,而不是停留在webview中,因为我需要Safari提供的add to screen功能,方便用户将网站A添加到主屏幕。
没有像 safari://xxx
这样的 url-scheme。是否有任何 JavaScript
或 HTML
方法可以实现此目的?
我在网上搜索过,但找不到适用于以上 iOS 8 的解决方案。
任何建议表示赞赏。非常感谢!
最佳答案
是的。
将委托(delegate)添加到您的 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
}
}
关于ios - 是否可以通过单击应用程序的 WebView 中的 URL 打开移动 safari?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180500/