第一种
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
return [WXApi handleOpenURL:url delegate:self];
}
// 新增微信分享处理回调
// * 注意:如果不实现这个代理方法的话,会
// * 1、微信的自检方法只能进行到第5步并输出universal link fail,
// * 2、每次分享动作触发时都会显示正在连接的界面并跳转微信再跳转回app再跳转微信
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
注意:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
这个代理方法在新版本微信分享sdk接入时,必须实现,否则每次跳转都会有问题。
第二种
当修改bundleid后,重新修改apple-app-site-association之后,记得卸载上次调试的安装包,重新运行
接入指南:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
UniversalLink配置步骤
1.制作apple-app-site-association
文件,并放置在准备好的链接根目录下,让后台人员给你这个https的链接,一定要https的(该步骤主要时后台人员操作)。apple-app-site-association的
内容如下:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "Team ID.com.xxx.xxxx",
"paths": ["/sdkexample/*"]
}
]
}
}
其实就是一个json,apps数组不用管,details里面填入对应得appID和paths。appID就是用前缀+bundleID的方式,在App Store应用后台可以查看此前缀。paths则是可访问APP的对应页面路径,APP Delegate有对应方法可以获取, 可添加多个paths。
微信的apple-app-site-association
实例:https://help.wechat.com/apple-app-site-association
微信的例子universal link为 https://help.wechat.com/sdksample/
Team ID:登录你的开发者账号即可查看
2. 举例:在根下创建的目录名为你写的paths中sdkexample
填写Domains, 格式为applinks:UniversalLink的形式, 如applinks:demo.xxx.com, 注意这里必须为裸的域名,不要加https或者文件名