【问题标题】:iOS - URLs whitelisting, working for every app?iOS - 网址白名单,适用于每个应用程序?
【发布时间】:2018-08-09 19:46:35
【问题描述】:

我知道,在我的 plist 文件中将 URL 列入白名单后,我可以通过编程方式确定该应用程序是否安装在我的设备上。例如,如果我在 plist 文件中的 LSApplicationQueriesSchemes 数组中有 spotify 字符串,那么我可以通过

进行查询
UIApplication.shared.canOpenURL(NSURL(string: "spotify")! as URL)

我的问题是 - 目标应用程序是否也必须明确将其 URL 列入白名单?以便其他人可以使用它?或者这适用于每个应用程序?每个应用程序都隐含这样的 URL 吗?

【问题讨论】:

  • 与您的问题无关,但无需在 Swift 中使用 NSURL。只需:UIApplication.shared.canOpenURL(URL(string: "spotify")!).
  • @rmaddy 谢谢你的提示

标签: ios url-scheme


【解决方案1】:

为了通过openURL 打开应用程序,该应用程序必须注册其对一个或多个自定义 URL 方案的支持。所以不,不是每个应用程序都隐含自定义 URL 方案。

当用户安装应用程序时,iOS 会跟踪已安装应用程序支持的 URL 方案。

当某些应用调用canOpenURL 时,iOS 首先验证调用应用是否已将该自定义方案列入白名单。如果是这样,它会检查设备上是否有任何已安装的应用程序注册了该自定义 URL 方案并相应地返回 true 或 false。

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 2013-08-31
    • 2011-06-28
    • 2016-04-19
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多