我在我的应用程序中使用自定义URL方案从另一个应用程序(可能是我自己的)打开它。假设我在App Store中有多个应用程序可能有我使用的URL标识符。如果用户有两个具有相同URL的应用程序计划,会打开什么?自定义URL应用程序是否会被苹果批准?
答案 0 :(得分:15)
Apple接受自定义网址应用。但是,如果设备上的多个应用程序已注册相同的URL方案,则行为未定义。从iOS Application Programming Guide开始,“如果多个第三方应用程序注册处理相同的URL方案,则未定义选择哪个应用程序来处理该类型的URL。”
答案 1 :(得分:10)
简短回答:注册网址的第一个应用有时会打开,但无法经常打开。其他时候注册的第二个应用程序将打开但经常失败。基本上它失败很多,真的是“未定义”。使用http://handleopenurl.com/来避免。
长答案:
我创建了两个应用,FirstApp和SecondApp,并为两者注册了相同的网址testURL
。
我加载了FirstApp,URL按预期工作,打开了应用。
然后我加载了SecondApp,并且开始发生可怕的未定义行为。目前,在iOS 7下,如果两个应用程序注册了相同的自定义URL,则弹出一个模式询问
在“First App的名称”中打开此页面?
当您点击“打开”选项时,它会失败,并且没有任何反应。如果您再次点击或输入链接,则使用该URL安装的第一个应用程序(在我们的案例中为FirstApp)将启动。
因此,实际上,第二个注册的应用程序永远不会打开,第一个应用程序每两次URL调用都会失败。没有理想的行为。
更糟糕的是我删除了两个应用程序,然后切换了我安装它们的顺序,结果不一致。有时它是一个应用程序,然后在重新加载两个应用程序时它是另一个。这种行为确实是“未定义的”。
最佳做法是使用http://handleopenurl.com/查看已注册的网址,并选择一个不会与其他应用冲突的网址。您无法“窃取”其他网址,因为您无法确定您的应用是否会打开,而不是其他应用。
答案 2 :(得分:-1)
这可能是您找到的答案
http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
通过阅读本文苹果可能会拒绝您的申请,您仍然可以阅读苹果提供的指南。 感谢