简介:由于苹果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后边会用到)
开发者中心只配置这些
2.XCode工程配置
如果没有Associated Domains(按照下图添加)
Associated Domains中需要填链接,现在先不填,后面会获得需要填写的内容
配置URL Types(URL Scheme为微信开放平台中自己的APPID)
配置info.plist,“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下图所示)。注意大小写
3.配置json文件(建议让后台去做)
创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。内容如下
其中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内容。
也可以用苹果提供的网页(https://search.developer.apple.com/appsearch-validation-tool/)来验证这个链接是否合法有效,有效的截图如下
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/
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<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
网友评论