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,但第一次必定會,這個影響不大,具體緣由還沒深刻研究,若有不對之處,歡迎指正 設計

相關文章
相關標籤/搜索