【问题标题】:Stop WKWebView redirecting to another app based on Universal link停止 WKWebView 基于通用链接重定向到另一个应用程序
【发布时间】:2019-02-23 11:31:02
【问题描述】:

我们正在使用 WKWebview 自定义加载和管理我们的 ServiceNow 实例,但是当登录成功时,如果用户在登录后安装了“ServiceNow”移动应用程序,它会打开 ServiceNow 应用程序。

尝试阻止最终的 Url 导航操作(decidePolicyfor navigationAction),但没有成功。

这是由于 ServiceNow 端的通用链接而发生的。 http://service-now.com/apple-app-site-association

在我们端阻止此操作的任何方法。

【问题讨论】:

    标签: ios swift wkwebview servicenow


    【解决方案1】:
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    
        decisionHandler(WKNavigationActionPolicy(rawValue: WKNavigationActionPolicy.allow.rawValue + 2)!)
    }
    

    这似乎解决了问题。

    【讨论】:

    • 解决方案有效。你能解释一下它为什么起作用吗???
    • 之所以有效,是因为:static const WKNavigationActionPolicy WK_API_AVAILABLE(macos(10.11), ios(9.0)) _WKNavigationActionPolicyAllowWithoutTryingAppLink = (WKNavigationActionPolicy)(WKNavigationActionPolicyAllow + 2); github.com/WebKit/WebKit/blob/… 这是一个声明的私有导航策略,它跳过了深度链接。
    【解决方案2】:

    希望 WKWebView 自定义代理适合您。使用以下代码

    webView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" 
    

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2020-07-16
      • 1970-01-01
      相关资源
      最近更新 更多