iOS微信授權(quán)登錄+Universal Link(通用鏈接)

簡介

隨著iOS和微信SDK版本的更新,有變化。


-

新版本,需要配置Unuversal Links。沒辦法,填坑工作開始。

Unuversal Links介紹

Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
Universal Link(通用鏈接)是蘋果在iOS9推出的,一種能夠方便的通過傳統(tǒng)HTTPS鏈接來啟動(dòng)APP的功能,可以使用相同的網(wǎng)址打開網(wǎng)址和APP。

看起來就是一條普通的https鏈接,當(dāng)然是我們?cè)谠撴溄佑蛎夸浥渲眠^的一個(gè)鏈接,也可以在該鏈接中放置對(duì)應(yīng)的H5頁面。當(dāng)用戶的點(diǎn)擊該鏈接,只要手機(jī)中安裝了支持該鏈接的APP就會(huì)直接進(jìn)入到APP中。如果沒有安裝APP則會(huì)跳轉(zhuǎn)到Safari瀏覽器中,展示H5頁面。對(duì)用戶來說則是一個(gè)無縫跳轉(zhuǎn)的過程。

詳細(xì)介紹:https://www.cnblogs.com/guoshaobin/p/11164000.html

配置Unuversal Links

其實(shí)要做的很簡單,但是坑多。

1.蘋果開發(fā)者賬號(hào)打開配置
-
2.XCode工程配置

打開Associated Domains開關(guān),將Universal Links域名加到配置上

-

如果沒有Associated Domains選項(xiàng),則添加。


-

配置URL Types


-

配置info.plist,“LSApplicationQueriesSchemes“欄添加


-
3.配置JSON文件

創(chuàng)建一個(gè)空白文件(必須純文本,命名為apple-app-site-association,去除后綴名)。這里建議讓后臺(tái)人員在其本地創(chuàng)建,避免文件傳輸時(shí),文件自動(dòng)被更改格式、后綴自動(dòng)添加等問題。

內(nèi)容如下

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "XXXXXXX.OOOOOOO",
                "paths": [ "*" ]
            }
        ]
    }
}

說明:XXX表示蘋果賬號(hào)的團(tuán)隊(duì)ID,OOO表示項(xiàng)目的BundleID。

4.后臺(tái)服務(wù)器配置

把文件apple-app-site-association,放置在服務(wù)器的根目錄(不要問我,讓后臺(tái)自己去理解),然后讓他提供一個(gè)https的url地址,格式是“正式域名/apple-app-site-association”,如:https://www.baidu.com/apple-app-site-association。

達(dá)到的效果是,瀏覽器打開這個(gè)地址,可以下載這個(gè)文件。另外用GET請(qǐng)求這個(gè)地址,返回文件的JSON內(nèi)容(這里通過工具Postman進(jìn)行試驗(yàn))


-

注意,返回的數(shù)據(jù),不能存在亂碼,否則說明JSON文件有問題。

5.微信開放平臺(tái)配置

填寫正式域名。

6.初始化代碼
// 微信SDK注冊(cè),universal link
[WXApi registerApp:APP_ID universalLink: UNIVERSAL_LINK];

補(bǔ)充說明:
如果后臺(tái)提供的url地址是https://www.baidu.com/apple-app-site-association。那么,
Associated Domains中填寫applinks:www.baidu.com,
代碼注冊(cè)方法及微信開放平臺(tái)中都填https://www.baidu.com/,

微信登錄

微信文檔中,重寫的方法,適用于iOS10以前。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return  [WXApi handleOpenURL:url delegate:self];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [WXApi handleOpenURL:url delegate:self];
}

添加方法

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    return [WXApi handleOpenURL:url delegate:self];
}


-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];

}

其他資料

http://www.itdecent.cn/p/bb8429cd7bce
http://www.itdecent.cn/p/6a25b18577eb
http://www.itdecent.cn/p/c9c09992a6fe

http://www.itdecent.cn/p/ab50bdaec65d
http://www.itdecent.cn/p/8e8840dcd54d

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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