iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)

简介:由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。 1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。https://open.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=11584519972VAnVQ&version=&lang=zh_CN&token=f5b9fb588e0daafd3b2af82ef4299f48124b700f

项目本来用的是1.8.0版本,为了不影响使用进行升级,直接用CocoaPods 升级版本

配置步骤并不难,不过点比较多,记录一下
1.苹果开发者账号配置(Team ID 和 Bundle ID后边会用到)

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第1张图片


iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第2张图片

开发者中心只配置这些

2.XCode工程配置

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第3张图片

如果没有Associated Domains(按照下图添加)

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第4张图片

Associated Domains中需要填链接,现在先不填,后面会获得需要填写的内容

配置URL Types(URL Scheme为微信开放平台中自己的APPID)

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第5张图片

配置info.plist,“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下图所示)。注意大小写

3.配置json文件(建议让后台去做)

创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。内容如下

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第6张图片

其中XXXX就是前面提到的Team ID ,0000000为前面提到的Bundle ID

4.后台服务器配置

把文件apple-app-site-association,放置在服务器的根目录,后台提供一个https的url地址,格式是“正式域名/apple-app-site-association”,如:https://www.baidu.com/apple-app-site-association。GET请求这个地址,返回文件的JSON内容。

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第7张图片

也可以用苹果提供的网页(https://search.developer.apple.com/appsearch-validation-tool/)来验证这个链接是否合法有效,有效的截图如下

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第8张图片


iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第9张图片


5.微信开放平台配置

填写Universal Links

说明:

如果后台提供的url地址是https://www.baidu.com/apple-app-site-association这个种格式的。那么,第二步中的Associated Domains中填写applinks:www.baidu.com,工程中Appdelegate.m文件中代码注册方法

[WXApiregisterApp:APP_IDuniversalLink:UNIVERSAL_LINK];

以及微信开放平台中都填https://www.baidu.com/

iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第10张图片

6.Appdelegate.m

重写 AppDelegate 的 handleOpenURL 和 openURL 方法:

- (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];

}

重写AppDelegate的continueUserActivity方法:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray

oring>> * __nullable restorableObjects))restorationHandler {

return [WXApi handleOpenUniversalLink:userActivity delegate:self];

}


iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接)_第11张图片

你可能感兴趣的:(iOS微信(openSDK1.8.6及以后)授权登录+Universal Link(通用链接))