E.g。全球速卖通。如果我已经安装了aliexpress应用程序 - 它通过单击网站上的链接运行,使用javascript代码:location.href = aliexpress://.....
我需要通过调用app-scheme://
手动打开UIApplication.shared.openURL()
,但不需要通过WKWebView自动打开。
答案 0 :(得分:0)
您需要为链接上发生点击时要打开的特定应用加载URLScheme。 您将获得更多信息this url。
如果您想阻止打开该应用程序然后监视链接,请单击此WKWebView的委托方法
decidePolicyForNavigationAction
修改强>
要拦截将在应用程序之外打开的任何URL,请创建UIApplication类的子类并覆盖OpenURL方法。在此方法中,您可以检查URL并确定要在应用程序之外打开的URL。
不要忘记在申请中为您指定新班级作为校长班级。
答案 1 :(得分:0)
很可能外部URL被抛出到 createWebViewWith Configuration:方法。 检查一次,将WKUIDelegate设置为self,
webview.UIDelegate = self
然后实现以下委托并正确处理URL加载,
public func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView?
{
//check the URL, either block it or handle it here.
webView.load(navigationAction.request)
return nil
}