這里介紹淘寶和京東的打開.
實現(xiàn)方式是利用 iOS 特供的一個特殊功能, 詳細介紹可以參考這篇文章. 總之按照如下的套路可以打開任何提供了 URL Scheme 的 APP, 比如微信, 新浪微博等.
1 添加 URL Type
首先在如下位置添加 URL Type:
其中 identifier 寫為 taobao
字樣(自定義), URL Scheme 中填寫的格式是 tbopen{AppKey}
, 如 tbopen123456
, 里面的 AppKey 就是在阿里百川上申請的 App 對應的 AppKey.
2 添加白名單
由于 iOS 限制了 APP 打開類型, 所以需要在 info.plist 中添加如下內(nèi)容:
即在 LSApplicationQueriesSchemes
中添加和 URL Types 中一致的 taobao
字符串即可, 需要其中的注意元素類型.
3 代碼中打開淘寶客戶端
然后例如類似如下的代碼即可打開淘寶客戶端, 其中淘寶 URL 是類似 taobao://shop.m.taobao.com/shop/shop_index.htm?shop_id=222222222
這樣的形式:
let taobaoClientUrl = URL(string: GlobalURLs.mallURLForClient)
guard let clientURL = taobaoClientUrl else {
return
}
if UIApplication.shared.canOpenURL(clientURL) {// 判斷是否可以打開淘寶客戶端
UIApplication.shared.openURL(clientURL)
} else {
// 執(zhí)行沒有淘寶客戶端時候的動作.
}
4 附: 京東打開
京東注冊時候的 URLScheme 填寫為 openApp.jdMobile, 同樣將其添加到白名單中.
但是打開詳情頁這里就需要注意了, 和淘寶的有點差別.
京東的 URL 是 openApp.jdMobile://
樣式的, 后面的內(nèi)容需要自己填寫.
如果只是打開某個商品的詳情頁, 按如下方式生成 URL 后面的內(nèi)容:
路徑為: openapp.jdmobile://virtual?params=%@
.
參數(shù)是一個 JSON 參數(shù), 如下所示:
{
"category": "jump",
"des": "orderlist",
"skuId": "1157957",
"sourceType": "homefloor",
"sourceValue": "4384",
"landPageId": "jshop.cx.mobile"
}
主要需要用到的參數(shù)有:
{
"category":"jump",
"des":"jshopMain",
"skuId":"1140722",
"sourceType":"JSHOP_SOURCE_TYPE",
"sourceValue":"JSHOP_SOURCE_VALUE"
}
關鍵這些參數(shù)的鍵值在哪里去查? 比如要跳到官方旗艦店的首頁, 不會去查京東 APP 里面吧. 這里找到一個鏈接, 里面包含所有的參數(shù).