我正在将一个应用程序与Branch.io集成,并在Safari中遇到问题(我已经在iOS 11上对此进行了测试,但问题也可能出现在其他版本上)。
基本上,如果我安装了我的应用并在Safari或Chrome中打开了一个快速链接,一切正常,我会提示打开应用中的链接。但是,如果我卸载应用并点击Safari中的链接,我会收到以下消息:
当我点击确定按钮时,我会收到打开Appstore的提示,这是所需的行为。有没有办法阻止" Safari无法打开页面,因为地址无效"出现的消息?我尝试在没有安装应用的情况下在Chrome中打开链接,一切正常。
我已经使用了官方设置指南并输入了我的URI方案但禁用了Universal Links,因为我自己处理这些问题。这会导致这个问题吗?
答案 0 :(得分:16)
来自Branch.io的Aaron
您可能收到此错误,因为当未安装应用时,Branch正尝试通过URI方案启动您的应用。从iOS 9.2开始,Apple不再正式支持深度链接的URI方案,强烈建议开发人员实施Universal Links以获得iOS上的等效功能。
具体来说,自定义URI方案存在明显的缺点,最明显的是无法轻松处理这两种情况:
因此,我们建议您在分支仪表板中启用通用链接。您需要做的就是提供您的包ID和应用前缀,而Branch将为您托管AASA文件。
答案 1 :(得分:9)
我也遇到了这个问题,但我发现按照分支测试应用程序测试部分的说明,我可以在没有Safari警告的情况下打开应用程序。
https://github.com/BranchMetrics/ios-branch-deep-linking/tree/master/Branch-TestBed-Swift#test
1. If the app was installed on the test device already:
* Delete the app from the device
* Clear Safari web content, history and cookies (Settings > Safari > Clear History and Website Data)
* Reset the device's IDFA (Settings > Privacy > Advertising > Reset Advertising Identifier...)
2. Create a Marketing link from the Branch dashboard
3. Paste the link into Notes on an iPhone
4. Tap the link - you will get redirected to the web page
5. ...
答案 2 :(得分:1)
希望对您有所帮助。
您的Apple信息中心中的这些ID和前缀:https://developer.apple.com/account/ios/identifier/bundle
如果很快,请创建文件https://yourdomain.com/.well-known/apple-app-site-association
(不带.json)。
文件内容(属于我,不确定确切需要哪个对象,我同时添加了两者):
{
"applinks": {
"apps": [],
"details": [
{
"appID": "YOURPREFIX.com.your.id",
"paths": [ "*" ]
},
{
"appID": "com.your.id",
"paths": [ "*" ]
}
]
}
}
希望它可以帮助人们进行基本的作品链接,而不会出现错误并自动打开应用程序。
答案 3 :(得分:0)
从 iOS 14 开始,应用不再直接向网络服务器发送对 AASA 文件的请求。相反,他们将这些请求发送到 Apple 管理的专用于关联域的内容交付网络 (CDN)。
请看这里:https://developer.apple.com/documentation/safariservices/supporting_associated_domains