iOS开发 - 微信SDK UniversalLink配置
2020-06-23 本文已影响0人
来者可追文过饰非
时间: 2020-06-23
WechatOpenSDK版本: 1.8.7.1微信在最近的版本中将App打开微信的方式由原来的url scheme的形式,改成了universalLink的形式, 更新新版本之后微信的登录以及支付都会遇到问题(第三方登录如果是集成友盟也需要更新对应的sdk),解决方法参考如下
配置UniversalLinks
1. 前往Apple Developer 修改项目对应的App ID,使其支持UniversalLinks,然后重新生成描述文件并下载
1.png2. 让同后端学准备一个域名,使用系统自带的文本编辑制作一个纯文本文件,文本内容如下,注意替换自己的Team ID 和 Bundle ID,然后命名为apple-app-site-association,完成之后将该文件给后端同学,将其放到域名的根目录之下,在此假设该域名为https://www.domain.com/,后边会以此为标注配置其他参数
此段为微信开发平台的一个回答 供大家参考
说一下这个坑:
举个例子:
你的域名是:https://xxx.com 你要匹配的是:https://xxx.com/app/link/
1、微信开发者 Universal Link 填写:https://xxx.com/app/link/
2、xcode 的 Associated Domains 添加 applinks:xxx.com
3、在你关联的域根目录下 创建 apple-app-site-association 文件,文件格式参照https://developer.apple.com/documentation/safariservices/supporting_associated_domains 。这里我们使用:{"applinks":{"apps":[],"details":[{"appID":"teamID.bundleID","paths":["/app/link/*"]}]}}
4、代码中注入即可
{
"applinks": {
"apps": [],
"details": [
{
"appID": "你的Team ID.你的Bundle ID",
"paths": [ "*" ]
},
// 如果有多个APP的话,可以填写多个
{
"appID": "你的Team ID.你的Bundle ID",
"paths": [ "*" ]
}
]
}
}
3. 去微信后台配置Universal Link, 如图所示,要与上文提到的后端给的域名一致,可以添加一个path,如此处配置为https://www.domain.com/ios/
2.png4. 项目中配置,如图所示 此处应该配置applinsk:+上文提到域名去掉https://,如例所示此处应该为 applinks:www.domain.com, 此时配置完毕后,运行App,用safiri打开上文提到的域名,上端应该会显示一个横幅,提示是否在你的app中打开,点击打开的会就会直接打开App
3.png5. 注册
// 后边的参数应与微信后台配置的UniversalLink一致
WXApi.registerApp(WX_APP_KEY, universalLink: "https://www.domain.com/ios/")
遇到的问题
1. 配置完之后运行项目,拉不起来微信?
需要在info.plist中LSApplicationQueriesSchemes下边添加一项weixinULAPI
2. 支付完之后不走微信回调?
在Appdelegate中添加如下方法
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
return WXApi.handleOpenUniversalLink(userActivity, delegate: self)
}