一.微信官方文檔說明
關(guān)于openSDK1.8.6的更新說明
由于蘋果iOS 13系統(tǒng)版本安全升級对竣,為此openSDK在1.8.6版本進(jìn)行了適配蟆融。 1.8.6版本支持Universal Links方式跳轉(zhuǎn),對openSDK分享進(jìn)行合法性校驗鸠姨。
*建議開發(fā)者接入新版本SDK, 覆蓋測試微信7.0.7或以上版本澄耍、iOS12或13,以驗證所使用的接口的功能性和可用性撞秋。
不管你是友盟還是ShareSDK等等,只要是最新版的應(yīng)該都需要這個參數(shù),即使你的APP目前跳轉(zhuǎn)微信沒問題也嚣鄙,強烈建議趁早適配此方案吻贿,因為在最新iOS系統(tǒng)和微信版本上可能出現(xiàn)無法調(diào)起微信的情況!
微信更新1.8.6的SDK后哑子,在delegate注冊時多了一個universalLink參數(shù)(如下):
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;
二.什么是UniversalLink
UniversalLink顧名思義(通用鏈接)與URL Schemes一樣舅列,都是跳轉(zhuǎn)APP的一種方式奉芦。
簡單來說就是一個URL,當(dāng)用戶在瀏覽器中訪問此URL時剧蹂,蘋果會檢測對應(yīng)的APP是否已安裝。
已安裝則跳轉(zhuǎn)到APP烦却。
未安裝則訪問此URL實際內(nèi)容宠叼。
為什么要用它呢?
微信之前是用URL Schemes方式跳轉(zhuǎn)APP其爵,在微信7.0.7版本和微信SDK1.8.6更新后冒冬,為了安全性等原因,改用universalLink方式摩渺。更新之后就必須用這種方式简烤,要是不填universalLink,不管是分享摇幻、支付横侦、登錄都無法調(diào)起微信。
這里有幾篇蘋果官方文檔的解釋绰姻,使用谷歌瀏覽器翻譯一下就好了枉侧,文章都不長,強烈建議都認(rèn)真看一圈狂芋。我也是反復(fù)讀了很多遍后才理解這玩意的榨馁。
支持通用鏈接
允許應(yīng)用程序和網(wǎng)站鏈接到您的內(nèi)容
啟用通用鏈接
處理通用鏈接
三:配置UniversalLink的步驟
總體來說步驟還是比較多的,但其實都很簡單帜矾,主要是要注意很多細(xì)節(jié)的東西翼虫,大概步驟如下(順序不分前后)
1、讓后臺人員準(zhǔn)備一個https的鏈接屡萤,一定要https的(微信硬性要求)
2珍剑、制作apple-app-site-association文件,并放置在準(zhǔn)備好的鏈接根目錄下
3灭衷、App Store應(yīng)用管理和Xcode開啟Associated Domains次慢,并填寫對應(yīng)Domains
4、用GET請求測試該鏈接下的文件內(nèi)容翔曲,并在safari瀏覽器中測試
5迫像、微信開放平臺和SDK注冊方法填寫相同UniversalLink
6、填寫微信新的LSApplicationQueriesSchemes
7瞳遍、回調(diào)測試
四:步驟詳解
1.為什么要準(zhǔn)備https的鏈接闻妓?其實蘋果是支持http和https,但是微信要求是這樣掠械,這一步交給你的服務(wù)器人員去完成由缆。
2 制作apple-app-site-association文件注祖,并放在準(zhǔn)備好的鏈接根目錄下。請先看看蘋果官方的解釋(如下圖)
大致意思就是蘋果會在APP第一次安裝啟動時(僅第一次)均唉,訪問你準(zhǔn)備的鏈接下面此文件是晨。(這里蘋果其實會訪問兩次,第一次是.well-known子目錄下舔箭,第二次才是根目錄)
注:該文件若改動過罩缴,建議卸載重新安裝,蘋果重新主動請求
一般放在根目錄下即可层扶,若你的鏈接有重定向箫章,建議嘗試放置在.well-known子目錄下,并且保證能GET請求到此文件镜会,且文件不需要后綴名檬寂。
例如:以https://help.wechat.com為基礎(chǔ)鏈接,則該文件請求路徑為
https://help.wechat.com/apple-app-site-association
https://help.wechat.com/.well-known/apple-app-site-association
那么此文件的內(nèi)容是什么呢戳表?還是來看看官方的解釋
其實就是一個json桶至,apps數(shù)組不用管,details里面填入對應(yīng)得appID和paths扒袖。
appID就是用前綴(Team ID)+bundleID的方式塞茅,在App Store應(yīng)用后臺可以查看此前綴
paths則是可訪問APP的對應(yīng)頁面路徑,APP Delegate有對應(yīng)方法可以獲取季率,更多關(guān)于paths的介紹這里不做過多撰述野瘦,下面有個例子,替換APPID和BundleID即可復(fù)制直接使用飒泻。
{
"applinks": {
"apps": [
],
"details": [{
"paths": ["*"],
"appID": "TeamId.bundleId"
},
{
"paths": ["*"],
"appID": "TeamId.其他環(huán)境的bundleId"
}
]
}
}
ok鞭光,到這里apple-app-site-association文件就制作好了,把它交給你的后臺人員泞遗,按照之前說的放到相應(yīng)目錄惰许。并且使用GET請求進(jìn)行測試,確保路徑能正常訪問史辙,json格式正確-_-!汹买,如圖
3.去App Store應(yīng)用管理開啟Associated Domains
啟用Xcode-Capabilities中的Associated Domains,以applinks:+你準(zhǔn)備的UniversalLink的形式填寫對應(yīng)值聊倔。例如:applinks:help.wechat.com晦毙,注意此次應(yīng)是裸的域名,不要加https或者文件名
4.一切就緒后即可在safari瀏覽器中測試耙蔑。
卸載一次APP见妒,build run一下,然后你就可以先在safari瀏覽器中測試走一波甸陌,把鏈接地址輸入進(jìn)去如https://help.wechat.com须揣。頁面加載完往下拉一下盐股,看是否有打開APP的提示,如果有則配置成功耻卡!
5.以上步驟與微信毫無關(guān)系疯汁,但證明UniversalLink已經(jīng)配置成功,可進(jìn)行APP跳轉(zhuǎn)卵酪。
接下來是微信開放平臺和SDK注冊方法填寫相同UniversalLink涛目,注意此次微信的要求https開頭 /結(jié)尾,列如:https://help.wechat.com/
同理凛澎,在微信SDK注冊方法中不管是友盟還是shareSDK填寫的都應(yīng)該和這個一樣
//微信注冊
[WXApi registerApp:wxID universalLink:@"https://help.wechat.com/"];
6.也許這個時候你迫不及待想去調(diào)起微信,結(jié)果一定是失敗的估蹄,因為此次更新后塑煎,還要添加一個新的Schemes。
在Xcode中臭蚁,在 “info”標(biāo)簽欄的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下圖所示)最铁。
7.回調(diào)測試
當(dāng)APP被UniversalLink調(diào)起后,可以在delegate中使用如下方法進(jìn)行對應(yīng)處理垮兑,獲取相關(guān)paths信息等(這里使用了微信的處理方式)注:UniversalLink調(diào)起不執(zhí)行application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options:等方法冷尉,而執(zhí)行如下方法。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
五系枪、總結(jié)
配置的過程請一定要仔細(xì)雀哨,大致可分為2個階段。
一私爷、優(yōu)先完成safari中測試雾棺,能提示打開APP
二、再配置微信相關(guān)內(nèi)容
填寫注意的地方:
假設(shè)你的鏈接是:https://help.wechat.com
GET請求地址應(yīng)為
https://help.wechat.com/apple-app-site-association
https://help.wechat.com/.well-known/apple-app-site-association
Xcode-Associated Domains中應(yīng)為
help.wechat.com
safari中測試應(yīng)為
https://help.wechat.com
微信開放平臺填寫的和注冊方法時應(yīng)為
https://help.wechat.com/
溫馨提示:
如果沒有條件自己配置apple-app-site-association文件衬浑,可以直接到shareSDK等平臺后臺->分享設(shè)置 去配置UniversalLink信息捌浩。
做完這些后,應(yīng)該就可以成功調(diào)起微信了工秩,如果還有什么特殊的需求尸饺,建議多仔細(xì)閱讀蘋果官方文檔,和微信更新的文檔助币。