是否可以通过单击应用程序 WebView 中的 URL 来打开移动 Safari?
Posted
技术标签:
【中文标题】是否可以通过单击应用程序 WebView 中的 URL 来打开移动 Safari?【英文标题】:Is it possible to open mobile safari by clicking an URL in a WebView of an app? 【发布时间】:2016-05-12 07:48:17 【问题描述】:和Open mobile Safari From a link in a webview一样的问题。 上述问题的答案提到可以从 Chrome 打开。 此外,这个question 提供了一个解决方案,但不适用于以上 ios 8 上的 webview。
但是,我想要实现的目标是通过单击应用程序(可能是 gmail 客户端、whatsapp、facebook messengers 等)的 web 视图中的 URL 来打开移动 Safari。
我会描述我的用户场景以使我的问题更清楚。
我有一个带有站点 A 链接的网站。用户可能会在 gmail 应用程序、facebook messenger 或 whatsapp 中收到我网站的 URL。当用户点击我网站的 URL 时,该网站将直接显示在应用程序的 webview 中。当用户点击站点A的链接时,我希望它能够在mobile Safari中打开站点A,而不是停留在webview中,因为我需要Safari提供的添加到屏幕功能,以便用户可以更方便地将站点A添加到主屏幕。
没有像safari://xxx
这样的url-scheme。是否有任何javascript
或html
方法可以实现此目的?
我在网上搜索过,但在上面的 iOS 8 上找不到有效的解决方案。
任何建议表示赞赏。非常感谢!
【问题讨论】:
【参考方案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
【讨论】:
感谢您的回复,这不是我想要的。抱歉,我对我的问题的描述不清楚。我已经更新了我的问题。希望它更清楚。 哦,我现在明白你的问题是什么了。我认为现在更像是一个 HTML/javascript 问题 :)以上是关于是否可以通过单击应用程序 WebView 中的 URL 来打开移动 Safari?的主要内容,如果未能解决你的问题,请参考以下文章
通过单击 Android Studio 中的按钮在 webview 中获取随机 Youtube 视频
当我在 WEBVIEW 应用程序中单击网站服务器中的链接时,PDF 未加载