iOS微信分享,配置通用链接Universal Link注意事项
1、apple-app-site-association文件
终端创建文件,例子格式如下:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamid. bundleID",
"paths": ["/h/app/download/"]
},
{
"appID": "teamid. bundleID",
"paths": ["/h/app/download/"]
}
]
}
}
编辑好后,文件不用有后缀名。
关于APPID说明,teamid+bundleID
path,自己随便找一个H5路径,或者直接*
2、将apple-app-site-association文件提供给后端,放在web服务器域名.well-known目录下。主意每次更新文件,APP需要卸掉重装才会更新apple-app-site-association文件配置,调试时这个很坑。
UniverSal Link必须支持https
3、登陆Appledevelop,设置APPID支持Associated Domains,Xcode,找到对应权限,添加applinks:域名,这里的域名不要带https。
4、测试配置是否正确;
APP运行安装后,打开Safari,访问域名+path完整链接,上下滑动出现APP打开链接,说明配置成功。
5、微信分享等功能支持;
下载最新版本微信SDK,
注册微信[WXApi registerApp:@"appid" universalLink:域名加path完整路径];
这时候发现打不开微信,因为需要info中LSApplicationQueriesSchemes添加weixin、weixinULAPI
然后可以打开微信。
微信开放平台配置UniverSal Link为完整路径,与上述需要一致。
踩到的坑:
1、有个项目是集成UM分享的,友盟新版本的还没有api支持新版本微信分享,需要自己调用
[WXApi registerApp:@"APPID" universalLink:@"域名+path"];
2、配置好后,发现跳转微信,在认证界面又跳回APP。
需要实现AppDelegate代理方法
-
(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id
> * _Nullable))restorationHandler { return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
然后就可以正常使用微信功能了。