今天我们app在分享内容到微信时,部分用户手机上会显示未验证应用,或者部分用户分享到QQ直接失败,原因就是由于苹果iOS13系统版本安全升级,微信分享以及QQ分享要求应用支持Universal Link方式跳转。
解决方法:先升级微信sdk,再配置应用支持Universal Link
Universal Link
Universal Link 是 iOS9 推出的一项新功能,在你的应用配置了Universal Link之后,用户能够在点击链接时直接打开已安装的app,不需要额外的任何操作,如果没有安装app,就会使用safari打开网页。在iOS9之前,其他应用跳转我们app通常使用的是scheme 的方式。
如何配置通用链接
1、创建一个json格式的空文件(必须命名为apple-app-site-association,没有后缀),内容如下:
- 这里的appID是:TeamID.BundleId(例如:9JA89TEAM.com.apple.test),TeamID可以在开发者账号里面查看
- 这里的path是指:允许的路径列表,可以是一个,也可以是多个,最简单的方式是使用“*”,通配符,表示允许该域名下的任意路径,注意大小写
2、上传apple-app-site-association文件
将第1步的文件交给服务端的同事,让他上传到域名目录下(注意告诉他文件要去后缀),并且Web server需要支持https,客户端通过https来访问,支持重定向。
Apple开发官网去配置
在开发者网站上找到对应app的identifier,选中Associated Domains。
项目配置
1、xcode中添加对应的域名,如下图:
applinks:+app的域名,例如:applinks:baidu.com
2、在plist文件中,新增weixinULAPI,如下图:
3、在AppDelegate中,添加如下方法:
检测是否配置成功
将app删除,重新编译完成,安装到手机后。打开备忘录,输入https://域名,点击,可以跳转app,则表示配置成功。
微信、QQ平台配置
进入微信、QQ的平台,找到对应的应用详情设置,添加Universal Link参数,例如:https://baidu.com/;如果apple-app-site-association文件设置了路径,那么Universal Link就要写https://baidu.com/路径/。
然后可以测试分享:只有首次出现二跳(也就是先出现app连接微信的一个页面,然后回到自己app,再次自动跳转微信),以后都是直接跳转微信时,才代表成功。
注意
如果公司有两个app时,在配置apple-app-site-association文件时,需要用不同的路径来区分跳转哪个app,格式如下图: