iOS app url scheme跳轉到淘寶商品詳情頁 喚醒app


最近涉及的一個業務,在app內的一個廣告,點擊打開webView,加載的是一個淘寶商品詳情頁,效果是打開該webView自動跳轉至淘寶對應的頁面,同時在自己的app仍然加載頁面,點擊評論等也同樣能跳轉至淘寶客戶端

經過攔截該網頁,得出一個結論,如果是需要跳轉,淘寶都會調用一個tbopen開頭的地址,這樣那就簡單了,以下直接貼代碼

1、第一步:info.plist添加白名單

這里經過反復測試,發現淘寶自定義跳轉協議只有tbopen,所以我猜測淘寶客戶端肯定添加了tbopen這樣一個url scheme,所以我們只要加這個白名單就有直接跳轉的能力了

(當然你也可以加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

2、第二步:攔截tbopen關鍵字,處理對應的業務邏輯

- (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,經過上面的兩歩之后我們就不需要考慮其他東西了,這也是經過淘寶開發人員和產品設計多年迭代出的作品,應該考慮還是比較全面的,所以稍微觀察一下規律按照他們的規則來就好了

 

注:經過多次測試發現並不是每次打開webView都會調用tbopen開頭的url,但第一次一定會,這個影響不大,具體原因還沒深入研究,如有不對之處,歡迎指正 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM