Iphone 对于自定义URL应用程序,多个应用程序具有相同的URL标识符?

Iphone 对于自定义URL应用程序,多个应用程序具有相同的URL标识符?,iphone,ipad,iphone-sdk-3.0,ios4,Iphone,Ipad,Iphone Sdk 3.0,Ios4,我在应用程序中使用自定义URL方案从另一个应用程序(可能是我自己的应用程序)打开它。假设App store中的多个应用程序可能具有我使用的URL标识符。如果用户有两个具有相同URL方案的应用程序,将打开什么?自定义URL应用程序会得到苹果的批准吗?这可能是您找到的答案 通过阅读本文,苹果可能会拒绝您的应用程序,但您仍然可以阅读苹果提供的指南。 谢谢苹果接受定制URL应用程序。但是,如果设备上的多个应用已注册相同的URL方案,则该行为未定义。从“如果多个第三方应用程序注册以处理同一URL方案,则

我在应用程序中使用自定义URL方案从另一个应用程序(可能是我自己的应用程序)打开它。假设App store中的多个应用程序可能具有我使用的URL标识符。如果用户有两个具有相同URL方案的应用程序,将打开什么?自定义URL应用程序会得到苹果的批准吗?

这可能是您找到的答案

通过阅读本文,苹果可能会拒绝您的应用程序,但您仍然可以阅读苹果提供的指南。
谢谢

苹果接受定制URL应用程序。但是,如果设备上的多个应用已注册相同的URL方案,则该行为未定义。从“如果多个第三方应用程序注册以处理同一URL方案,则未定义选择哪个应用程序来处理该类型的URL。”

简短回答:注册URL的第一个应用程序有时会打开,但经常无法打开。其他时候,第二个要注册的应用程序将打开,但经常失败。基本上,它失败了很多,实际上是“未定义的”。避免使用

长答覆:

我创建了两个应用程序,FirstApp和SecondApp,并为这两个应用程序注册了相同的URL
testURL

我加载了FirstApp,URL按预期工作,打开了应用程序

然后我加载了SecondApp,可怕的未定义行为开始发生。目前,在iOS 7下,如果两个应用注册了相同的自定义URL,则会弹出一个模式请求

在“第一个应用的名称”中打开此页面

当您点击打开选项时,它会失败,并且不会发生任何事情。如果您再次点击或输入链接,第一个使用该URL安装的应用程序(在我们的例子中是FirstApp)将启动

因此,实际上,要注册的第二个应用程序永远不会打开,而第一个应用程序每两次URL调用就会失败一次。没有理想的行为

更糟糕的是,我删除了这两个应用,然后改变了安装顺序,结果不一致。有时它是一个应用程序,然后在重新加载两个应用程序时,它是另一个。这种行为确实是“未定义的”


最佳实践是查看已注册的URL,并选择一个不会与其他应用冲突的URL。你不能“窃取”另一个URL,因为你不能确定你的应用程序是否会打开,而不是另一个应用程序

@eggie5,苹果公司明确表示该行为未定义。所以你不能确切地说出将会发生什么。@tasknoor我认为“清楚地陈述”和苹果说“未定义”是一种矛盾的说法。发生了什么事?这会引起错误吗?手机关机了吗,股市崩盘了吗???我认为未定义意味着你无法判断哪个应用程序会运行。如果多个应用程序具有相同的URL,则将选择其中一个应用程序。哪一个?我说不出来,因为苹果没有指定他们的算法,我也没有为苹果工作过,因此我没有看到代码。是的,我认为每个人都说它“未定义”是一种逃避。是否运行1个应用程序或其他应用程序?他们都没有吗@eggie5这是一个老问题,但“未定义”部分实际上已定义,我想与大家分享。将打开最后安装的应用程序。