【问题标题】:How iOS handle URL scheme duplication?iOS 如何处理 URL 方案重复?
【发布时间】:2011-07-03 11:03:54
【问题描述】:

如果其他 2 个应用注册了相同的 url 方案,iOS 将如何处理?

【问题讨论】:

标签: ios duplication url-scheme


【解决方案1】:

它将呈现一个 UIActionSheet 视图,允许用户选择要启动的应用程序(很好的例子是处理 .doc 文件的应用程序)。这就是使用您指定的图标的地方 - 当它显示给用户时在操作表按钮上

【讨论】:

  • 我在 5.0 ipod touch 上尝试了 2 个具有相同 url 方案和相同 url 标识符的应用程序,它没有给我 UIActionSheet,只是启动我首先安装的那个。还有其他影响行为的因素吗?
  • @Nick 我认为这不是真的。
  • 没有。您在谈论文件类型。 OP 正在谈论 URL 方案。未定义启动哪个应用程序。据我所知。
【解决方案2】:

iOS Documentation 内容如下:

注意:如果多个第三方应用注册处理相同的 URL 方案,则目前没有确定哪个应用将获得该方案的过程。

如果有两个应用程序注册了一个 URL 方案,则操作系统的行为是不确定的,因此您应该尝试为您的应用程序定义一个特定的处理程序以避免这种情况(例如 awesomeMapsApp:// 而不是 maps://)。

【讨论】:

    【解决方案3】:

    这是我测试过的:

    iOS 5:将选择第一个安装的应用程序。如果您删除了第一个安装的应用程序,那么除非您再次安装,否则其他应用程序将无法启动。

    iOS 6:将选择最新安装的应用程序。如果您删除最新安装的应用程序,则将选择以前安装的应用程序。

    【讨论】:

    • iOS 7 有什么更新吗?我做了一些搜索,认为行为仍未定义:/
    【解决方案4】:

    实际上它可能真的有问题。例如,直到 2016 年 3 月,一个名为 Grabb 的应用程序处理 PayPal 方案,因此如果您的应用程序尝试打开 PayPal(在调用中包含所有安全随机数等),它会启动 Grabb,并且你对此无能为力。即使在 iOS 9 中添加了openURL alertView,它仍然可能是一个很大的安全问题。

    【讨论】:

      猜你喜欢
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2011-05-23
      • 2014-07-30
      • 2011-03-15
      相关资源
      最近更新 更多