iOS universal Link跳轉(zhuǎn)微信回調(diào)

關(guān)于universal LInk的基礎(chǔ)介紹參考下面????的文章
參考的文章鏈接1-Universal link 入門指南
參考的文章鏈接2-微信官方接入文檔
說幾個(gè)我在接入universal Link扥時(shí)候遇到的問題

1、上傳到服務(wù)器的apple-app-association不生效

按照網(wǎng)上的介紹該配置的都配好了,但是就是不生效,使用將鏈接復(fù)制到備忘錄點(diǎn)擊看能不能打開app的方式驗(yàn)證就是打不開。后來發(fā)現(xiàn)這個(gè)apple-app-association文件必須放在服務(wù)器的根目錄或者.well-known目錄下,這個(gè)在把文件交給后臺(tái)開發(fā)人員的時(shí)候一定要告知他,并確認(rèn)是否放對了位置。

配置好之后要在Xcode的signing&capabilities里點(diǎn)擊+添加Associated Domains值為:applinks:你的域名不帶https

xcode配置

重新傳apple-app-association這個(gè)文件之后,想要驗(yàn)證最好把a(bǔ)pp卸載重新安裝再驗(yàn)證,因?yàn)橛械奈恼抡f每次只有首次安裝的時(shí)候才會(huì)重新下apple-app-association文件,所以*重新傳之后,要卸載重新安裝再驗(yàn)證

!驗(yàn)證

1、下載apple-app-association看配置的路徑和代碼中注冊微信以及微信開發(fā)者平臺(tái)上填寫的Universal Links是否相同(根路徑地址/apple-app-association 下載文件)

2、配置的文件是否生效,可以在蘋果手機(jī)的備忘錄中輸入universal_link鏈接,如果上面出現(xiàn)打開app的樣式,可以通過點(diǎn)擊跳轉(zhuǎn)到app中就是生效成功的,如下圖。
IMG_3560.PNG

2、多個(gè)app使用同一個(gè)apple-app-association路徑怎么配置

之前公司只使用一個(gè)app用apple-app-association文件,所以文件中的path配置的是[*]

文件內(nèi)容.jpg

如果兩個(gè)app的path都這么配置就會(huì)導(dǎo)致,其中你那個(gè)一個(gè)app使用微信支付,支付完跳回app的時(shí)候跳錯(cuò)了,跳到了另一個(gè)app的情況。
因此如果一個(gè)文件配置多個(gè)app的話,就要在paths處做出區(qū)分。
區(qū)分文件內(nèi)容

配置的名字可以根據(jù)自己app隨意取名,只要不同就可以。如果使用微信的功能,需要在微信開發(fā)者平臺(tái)處配置universal link的地方,填寫服務(wù)器地址+path,這個(gè)配置的內(nèi)容與代碼中寫的微信注冊時(shí)填寫的地址相同。
微信配置

代碼里注冊微信

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]寫在一個(gè)頁面,我之前就是把微信的方法都寫在了一個(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ā)送通知,在微信的頁面中接收到通知后執(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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容