【发布时间】:2017-10-26 09:22:27
【问题描述】:
我们的应用程序有多种风格,它们指向完全相同的服务器;我们无法通过查看域 url 及其路径来区分不同的应用程序。
例如,从任何应用程序中,如果我们请求忘记密码,则电子邮件中收到的重置密码链接对于两个应用程序都是相同的。因此,如果我们点击链接,它将打开任何应用程序,而不是通过显示所有可用应用程序的菜单来询问用户应该打开哪个应用程序。实际上,它打开了 Bundle ID 与服务器上 apple-app-site-association 文件中匹配的第一个应用程序。
应用关联域部分中的域注册: applinks:example.com
apple-app-site-association 文件中的内容放在服务器上:
{
"applinks": {
"apps": [
],
"details": [{
"appID": "XXXXXXXXXX.com.example.FirstApp",
"paths": [
"NOT /sample/activate/*",
"*"
]
},
{
"appID": "XXXXXXXXXX.com.example.SecondApp",
"paths": [
"NOT /sample/activate/*",
"*"
]
}
]
}
}
实际行为: 如果这两个应用程序都安装在设备上,通过点击浏览器中的链接,它将打开 FirstApp 或 SecondApp
预期行为: 如果两个应用程序都安装在设备上,那么通过点击链接,iOS 应该让用户选择他/她想要打开哪个应用程序。
有什么方法可以实现上述场景的预期行为?
【问题讨论】:
-
这是 iOS 的限制。 iOS 平台不提供从应用程序中进行选择的选项。它将打开带有他们认为最适合的选项的链接,并且没有办法绕过它。
-
@AmrutaDeshmukh 任何替代或解决方法?在我的情况下有必要处理。应该打开正确的应用程序。
标签: ios iphone deep-linking branch.io ios-universal-links