iOS微信受權登陸+Universal Link(通用連接)

簡介

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

新版本,須要配置Unuversal Links。沒辦法,填坑工做開始。web

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推出的,一種可以方便的經過傳統HTTPS連接來啓動APP的功能,能夠使用相同的網址打開網址和APP。瀏覽器

看起來就是一條普通的https連接,固然是咱們在該連接域名根目錄配置過的一個連接,也能夠在該連接中放置對應的H5頁面。當用戶的點擊該連接,只要手機中安裝了支持該連接的APP就會直接進入到APP中。若是沒有安裝APP則會跳轉到Safari瀏覽器中,展現H5頁面。對用戶來講則是一個無縫跳轉的過程。服務器

詳細介紹:www.cnblogs.com/guoshaobin/…微信

配置Unuversal Links

其實要作的很簡單,可是坑多。markdown

1.蘋果開發者帳號打開配置

-

2.XCode工程配置

打開Associated Domains開關,將Universal Links域名加到配置上app

-

若是沒有Associated Domains選項,則添加。 -less

配置URL Types -ide

配置info.plist,「LSApplicationQueriesSchemes「欄添加 -工具

3.配置JSON文件

建立一個空白文件(必須純文本,命名爲apple-app-site-association,去除後綴名)。這裏建議讓後臺人員在其本地建立,避免文件傳輸時,文件自動被更改格式、後綴自動添加等問題。

內容以下

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

說明:XXX表示蘋果帳號的團隊ID,OOO表示項目的BundleID。

4.後臺服務器配置

把文件apple-app-site-association,放置在服務器的根目錄(不要問我,讓後臺本身去理解),而後讓他提供一個https的url地址,格式是「正式域名/apple-app-site-association」,如:www.baidu.com/apple-app-s…

達到的效果是,瀏覽器打開這個地址,能夠下載這個文件。另外用GET請求這個地址,返回文件的JSON內容(這裏經過工具Postman進行試驗) -

注意,返回的數據,不能存在亂碼,不然說明JSON文件有問題。

5.微信開放平臺配置

填寫正式域名。

6.初始化代碼
// 微信SDK註冊,universal link
[WXApi registerApp:APP_ID universalLink: UNIVERSAL_LINK];
複製代碼

補充說明:

若是後臺提供的url地址是https://www.baidu.com/apple-app-site-association。那麼, Associated Domains中填寫applinks:www.baidu.com, 代碼註冊方法及微信開放平臺中都填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];
}
複製代碼

其餘資料

www.jianshu.com/p/bb8429cd7… www.jianshu.com/p/6a25b1857… www.jianshu.com/p/c9c09992a…

www.jianshu.com/p/ab50bdaec… www.jianshu.com/p/8e8840dcd…

相關文章
相關標籤/搜索