如何禁止Universal Links跳转

字数 405阅读 281

前言

最近项目中要放个携程网页,本以为用WKWebView,但是产品测试给我反应,如果手机装了携程App,点击携程网页会自动跳转到携程App,由于是分佣模式,如果跳转到携程App下单的话,并不会记录到我们的订单中。

1.URL Schemes

第一个反应就是 URL Schemes,是不是这个原因导致的。
App跳转其他App的时候,我们都会有一个提示框,XXXX想打开微信,如果我们点确定就会直接跳到微信。但是要要在项目中的URL Types中配置,还需要加入白名单。


image.png

解决:
1.很多要打开微信App的时候,url链接都是wechat://开头的,其实这就是微信的URL Schemes
2.然后我百度找到了携程的URL Schemes
3.在WKWebView代理中,如果url的URL Schemes是携程的,就禁止跳转

结果当然是失败了。

2.Universal Links(通用链接)

一种能够方便的通过传统HTTP链接来启动APP,使用相同的网址打开网站和APP,使用就不介绍了,我要实现的是反其道而行。

大概意思就是:苹果公司希望优化用户体验,用户不用点击跳转App的提示弹窗,直接拉起你要跳转的App,但是需要进行一些列配置。

解决:
只需要在WKWebView代理中加入如下代码就可以了。

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
    //返回+2的枚举值
     decisionHandler(WKNavigationActionPolicyAllow + 2);
}

推荐阅读更多精彩内容