这种情况是因为微信支付和分享功能使用了不同的跳转机制。 原因分析:
- 微信支付/分享跳转机制:微信SDK在支付或分享完成后,会通过
openURL方式直接唤起App的URL Scheme,而不是通过Universal Link的深度链接机制。因此即使apple-app-site-association配置错误,只要URL Scheme配置正确,支付后仍能跳回App。 - Safari无法打开:Safari访问Universal Link时,会向服务器请求
apple-app-site-association文件,根据其中的paths配置判断是否允许唤起App。由于你的paths配置与Universal Link不一致,Safari认为该链接不关联你的App,因此不会显示"在App中打开"的提示。
解决方案: 将apple-app-site-association文件中的paths配置修改为与微信开放平台和代码中一致的路径:
{"applinks": {"apps": [],"details": [{"appID": "你的TeamID.BundleID","paths": ["/your-path/*"]}]}
}
验证方法:
- 在Safari中输入你的Universal Link(如
https://your.domain.com/your-path/) - 下拉页面,应该能看到"在App中打开"的提示
- 点击后应能正确唤起你的App
配置完成后,建议使用苹果官方验证工具(https://search.developer.apple.com/appsearch-validation-tool/)检查配置是否正确。