關(guān)于universal LInk的基礎(chǔ)介紹參考下面????的文章
參考的文章鏈接1-Universal link 入門(mén)指南
參考的文章鏈接2-微信官方接入文檔
說(shuō)幾個(gè)我在接入universal Link扥時(shí)候遇到的問(wèn)題
1娃肿、上傳到服務(wù)器的apple-app-association不生效
按照網(wǎng)上的介紹該配置的都配好了雷厂,但是就是不生效邮绿,使用將鏈接復(fù)制到備忘錄點(diǎn)擊看能不能打開(kāi)app的方式驗(yàn)證就是打不開(kāi)栈戳。后來(lái)發(fā)現(xiàn)這個(gè)apple-app-association文件必須放在服務(wù)器的根目錄或者.well-known
目錄下,這個(gè)在把文件交給后臺(tái)開(kāi)發(fā)人員的時(shí)候一定要告知他碍粥,并確認(rèn)是否放對(duì)了位置害晦。
配置好之后要在Xcode的signing&capabilities
里點(diǎn)擊+添加Associated Domains
值為:applinks:你的域名不帶https
重新傳apple-app-association這個(gè)文件之后,想要驗(yàn)證最好把a(bǔ)pp卸載重新安裝再驗(yàn)證惶傻,因?yàn)橛械奈恼抡f(shuō)每次只有首次安裝的時(shí)候才會(huì)重新下apple-app-association文件棍郎,所以*重新傳之后,要卸載重新安裝再驗(yàn)證
银室!驗(yàn)證
1涂佃、下載apple-app-association看配置的路徑和代碼中注冊(cè)微信以及微信開(kāi)發(fā)者平臺(tái)上填寫(xiě)的Universal Links是否相同(根路徑地址/apple-app-association 下載文件)
2、多個(gè)app使用同一個(gè)apple-app-association路徑怎么配置
之前公司只使用一個(gè)app用apple-app-association文件辐宾,所以文件中的path
配置的是[*]
如果兩個(gè)app的path都這么配置就會(huì)導(dǎo)致狱从,其中你那個(gè)一個(gè)app使用微信支付,支付完跳回app的時(shí)候跳錯(cuò)了叠纹,跳到了另一個(gè)app的情況季研。
因此如果一個(gè)文件配置多個(gè)app的話(huà),就要在paths處做出區(qū)分誉察。
配置的名字可以根據(jù)自己app隨意取名与涡,只要不同就可以。如果使用微信的功能持偏,需要在微信開(kāi)發(fā)者平臺(tái)處配置
universal link
的地方驼卖,填寫(xiě)服務(wù)器地址+path
,這個(gè)配置的內(nèi)容與代碼中寫(xiě)的微信注冊(cè)時(shí)填寫(xiě)的地址相同鸿秆。3酌畜、使用universal link之后微信回調(diào)不走協(xié)議方法
使用universal link進(jìn)行跳轉(zhuǎn)的,回到app之后要在appdelegate
中添加一個(gè)協(xié)議方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
添加之后才會(huì)回到app之后走判斷支付成功或者失敗的方法-(void) onResp:(BaseResp*)resp
*需要注意一點(diǎn)卿叽,-(void) onResp:(BaseResp*)resp
微信的協(xié)議方法要跟上面????的[WXApi handleOpenUniversalLink:userActivity delegate:self]
寫(xiě)在一個(gè)頁(yè)面桥胞,我之前就是把微信的方法都寫(xiě)在了一個(gè)文件中恳守,而上面添加的代碼單獨(dú)粘貼到了appdelegate中,導(dǎo)致每次回到app走都不進(jìn)入-(void) onResp:(BaseResp*)resp
方法贩虾。
如果想要實(shí)現(xiàn)微信方法都統(tǒng)一到一個(gè)文件中催烘,可以在appdelegate這個(gè)方法中增加一個(gè)通知,使每次回到app走- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler
時(shí)缎罢,發(fā)送通知伊群,在微信的頁(yè)面中接收到通知后執(zhí)行[WXApi handleOpenUniversalLink:userActivity delegate:self];
,這樣就可以實(shí)現(xiàn)了策精。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler API_AVAILABLE(ios(8.0)){
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:@"continueUserActivity" object:userActivity]];
return YES;
}