iOS app url scheme跳转到淘宝商品详情页 唤醒app

最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在本身的app仍然加载页面,点击评论等也一样能跳转至淘宝客户端html

通过拦截该网页,得出一个结论,若是是须要跳转,淘宝都会调用一个tbopen开头的地址,这样那就简单了,如下直接贴代码web

一、第一步:info.plist添加白名单app

这里通过反复测试,发现淘宝自定义跳转协议只有tbopen,因此我猜想淘宝客户端确定添加了tbopen这样一个url scheme,因此咱们只要加这个白名单就有直接跳转的能力了ide

(固然你也能够加taobao这个白名单,那对应的你的openURL就须要本身拼接,例如 taobao://m.taobao.com/tbopen/index.html?action=ali.open.nav&module=h5&bootImage=0&source=sb&appkey=24585446&smbSid=f6CPFcarHDsCAbcPsILVPbbX_1561013627944&rbbt=bc.mainDetail.0.2.122bef3b90e447e199100ff5550b9c4d&params=%7B%22fid%22%3A%22ckN4GzSh9iL%22%2C%22mtopCostTime%22%3A%22163%22%2C%22uiKey%22%3A%22%2Falbum%2Flist.htm%22%2C%22_t%22%3A%221561013656447%22%7D&h5Url=https%3A%2F%2Fh5.m.taobao.com%2Fawp%2Fcore%2Fdetail.htm%3Fid%3D590575701816%26point%3D%25257B%252522from%252522%25253A%252522h5%252522%25252C%252522h5_uid%252522%25253A%252522f6CPFcarHDsCAbcPsILVPbbX%252522%25252C%252522ap_uri%252522%25253A%252522sb_redirect_manual%252522%25252C%252522page%252522%25253A%252522mainDetail%252522%25252C%252522callType%252522%25253A%252522scheme%252522%25257D测试

二、第二步:拦截tbopen关键字,处理对应的业务逻辑ui

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
    
    NSURL *requestUrl = navigationAction.request.URL;

    if ([navigationAction.request.URL.scheme containsString:@"tbopen"]) {//拦截tbopen开头的url
        if ([[UIApplication sharedApplication] canOpenURL:requestUrl]) {//能打开手机淘宝APP
            [[UIApplication sharedApplication] openURL:requestUrl];// 打开淘宝app
        }
    }
    decisionHandler(WKNavigationActionPolicyAllow);
}

 

ok,通过上面的两歩以后咱们就不须要考虑其余东西了,这也是通过淘宝开发人员和产品设计多年迭代出的做品,应该考虑仍是比较全面的,因此稍微观察一下规律按照他们的规则来就行了url

 

注:通过屡次测试发现并非每次打开webView都会调用tbopen开头的url,但第一次必定会,这个影响不大,具体缘由还没深刻研究,若有不对之处,欢迎指正 设计

相关文章
相关标签/搜索