正常在使用微信分享时,如果使用的Universal Link,首次打开微信app,会先两次跳转微信app:即先跳转到微信,然后返回自己的app,最后再跳转到微信,才完成鉴权,才能最终分享到微信。且二跳仅在首次跳转微信分享,之后在进行分享只会跳转一次。
问题描述
如果Universal Link鉴权未通过,会有两个问题:
1、则跳到微信后,会立刻跳回本app,不再进行二跳;
2、每次进行分享时,都会跳转两次;
这时候,使用微信SDK的检查UniversalLink的API checkUniversalLinkReady:
[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult * _Nonnull result) {
NSLog(@"qrice %ld-%d, %@", (long)step, result.success, result.errorInfo);
}];
会发现:
在最后一步的时候result为0,这时候虽然能调回APP,但是打断点会发现,微信是通过scheme调回的,并不通过UniversalLink;
问题解决
这就是配置到服务端的UniversalLink文件不正确导致的,再次核对配置到服务器的JSON内容是否正确:
一般文件地址
https://host.com/.well-known/apple-app-site-association
或
https://host.com/apple-app-site-association
1、核对JSON文件内的AppID
即groundid和bundleID, 这里可以直接从证书里看到
证书
在finder里,使用分栏模式查看描述文件(mobileprovision),可以直接看到AppID,这里直接复制过去即可;
2、AppID核对无误后
在浏览器打开一下JSON文件链接,看看下载的东西和自己配置的是否一致;
确认完成后,基本就解决了,使用checkUniversalLinkReady检测会有以下日志输出:
鉴权完成日志
PS:在服务端更新 apple-app-site-association 文件后,手机系统并不会立即去获取最新的内容,这时候可以换个新的测试机,或者稍晚点再去测试,一般等到等到第二天。
网友评论