iOS - URL 白名单,适用于每个应用程序?
iOS - URLs whitelisting, working for every app?
我知道一旦我在我的 plist 文件中将 URL 列入白名单,我就可以通过编程确定我的设备上是否安装了该应用程序。例如,如果我在 plist 文件的 LSApplicationQueriesSchemes
数组中有 spotify
字符串,那么我可以通过
查询
UIApplication.shared.canOpenURL(NSURL(string: "spotify")! as URL)
我的问题是 - 目标应用是否也必须明确地将其 URL 列入白名单?以便其他人可以使用它?或者这适用于每个应用程序吗?每个应用程序都隐含地具有这样的 URL 吗?
为了通过 openURL
打开应用程序,该应用程序必须注册其对一个或多个自定义 URL 方案的支持。所以不,并非每个应用程序都隐含地具有自定义 URL 方案。
当用户安装应用程序时,iOS 会跟踪安装的应用程序支持哪些 URL 方案。
当某些应用程序调用 canOpenURL
时,iOS 首先验证调用应用程序是否已将该自定义方案列入白名单。如果是这样,它会检查设备上是否有任何已安装的应用程序已注册该自定义 URL 方案和相应的 returns true
或 false
。
我知道一旦我在我的 plist 文件中将 URL 列入白名单,我就可以通过编程确定我的设备上是否安装了该应用程序。例如,如果我在 plist 文件的 LSApplicationQueriesSchemes
数组中有 spotify
字符串,那么我可以通过
UIApplication.shared.canOpenURL(NSURL(string: "spotify")! as URL)
我的问题是 - 目标应用是否也必须明确地将其 URL 列入白名单?以便其他人可以使用它?或者这适用于每个应用程序吗?每个应用程序都隐含地具有这样的 URL 吗?
为了通过 openURL
打开应用程序,该应用程序必须注册其对一个或多个自定义 URL 方案的支持。所以不,并非每个应用程序都隐含地具有自定义 URL 方案。
当用户安装应用程序时,iOS 会跟踪安装的应用程序支持哪些 URL 方案。
当某些应用程序调用 canOpenURL
时,iOS 首先验证调用应用程序是否已将该自定义方案列入白名单。如果是这样,它会检查设备上是否有任何已安装的应用程序已注册该自定义 URL 方案和相应的 returns true
或 false
。