我创建了两个应用程序,FirstApp 和 SecondApp,并为这两个应用程序注册了相同的 URL
testURL
。
我加载了 FirstApp,URL 按预期工作,打开了应用程序。
然后我加载了 SecondApp,可怕的未定义行为开始发生。目前,在 iOS 7 下,如果两个应用程序注册了相同的自定义 URL,则会弹出一个模式询问
在“第一个应用程序名称”中打开此页面?
当您点击“打开”选项时,它会失败,并且什么也不会发生。如果您再次点击或输入该链接,则使用该 URL 安装的第一个应用程序(在我们的示例中为 FirstApp)将启动。
因此,实际上,要注册的第二个应用程序永远不会打开,并且第一个应用程序每两次 URL 调用都会失败。没有理想的行为。
更糟糕的是,我删除了这两个应用程序,然后交换了它们的安装顺序,结果并不一致。有时它是一个应用程序,然后在重新加载两个应用程序时它是另一个应用程序。这种行为确实是“未定义的”。
最佳做法是使用
http://handleopenurl.com/查看已注册的 URL,并选择一个不会与其他应用程序冲突的 URL。您无法“窃取”另一个 URL,因为您无法确定您的应用程序会打开,而其他应用程序不会打开。