【发布时间】:2011-07-03 11:03:54
【问题描述】:
如果其他 2 个应用注册了相同的 url 方案,iOS 将如何处理?
【问题讨论】:
标签: ios duplication url-scheme
如果其他 2 个应用注册了相同的 url 方案,iOS 将如何处理?
【问题讨论】:
标签: ios duplication url-scheme
它将呈现一个 UIActionSheet 视图,允许用户选择要启动的应用程序(很好的例子是处理 .doc 文件的应用程序)。这就是使用您指定的图标的地方 - 当它显示给用户时在操作表按钮上
【讨论】:
iOS Documentation 内容如下:
注意:如果多个第三方应用注册处理相同的 URL 方案,则目前没有确定哪个应用将获得该方案的过程。
如果有两个应用程序注册了一个 URL 方案,则操作系统的行为是不确定的,因此您应该尝试为您的应用程序定义一个特定的处理程序以避免这种情况(例如 awesomeMapsApp:// 而不是 maps://)。
【讨论】:
这是我测试过的:
iOS 5:将选择第一个安装的应用程序。如果您删除了第一个安装的应用程序,那么除非您再次安装,否则其他应用程序将无法启动。
iOS 6:将选择最新安装的应用程序。如果您删除最新安装的应用程序,则将选择以前安装的应用程序。
【讨论】:
实际上它可能真的有问题。例如,直到 2016 年 3 月,一个名为 Grabb 的应用程序处理 PayPal 方案,因此如果您的应用程序尝试打开 PayPal(在调用中包含所有安全随机数等),它会启动 Grabb,并且你对此无能为力。即使在 iOS 9 中添加了openURL alertView,它仍然可能是一个很大的安全问题。
【讨论】: