如果有其他两个应用程序注册相同的URL方案,iOS会如何处理?
iOS文档中提到:
注意:如果有超过一个第三方应用程序注册相同的URL方案,则目前没有确定哪个应用程序将获得该方案的进程。
如果有两个应用程序注册同一URL方案,则操作系统的行为是未定义的,因此您应尽量定义一个特定于您的应用程序的处理程序,以避免出现此情况(例如使用awesomeMapsApp://
而不是maps://
)。
实际上,这可能会带来很多问题。例如,在2016年3月之前,一个名为Grabb
的应用程序处理PayPal
方案,因此如果您的应用程序尝试打开PayPal
(在调用中包含所有安全nonce等),它将启动Grabb
,而您无能为力。即使在iOS 9中添加了openURL alertView
,仍然可能存在严重的安全问题。
它将呈现一个UIActionSheet视图,允许用户选择要启动哪个应用程序(好的示例是处理.doc文件的应用程序)。这就是您指定的图标使用的地方-在向用户显示操作表按钮时。