iOS 16+ 查询 URL 方案

问题描述 投票:0回答:1

我为 iOS 16 制作了一个应用程序来自定义主屏幕图标,并寻找一种方法来确定设备上是否安装了第 3 方应用程序。

有一个函数可以做到这一点 -

UIApplication
方法canOpenURL(_:)。您需要将要检查的应用程序的 url 方案传递给
canOpenURL(_:)
,如果它返回
true
,则意味着该应用程序已安装在设备上。

正如文档所述,所有查询的 url 方案必须列在

Info.plist
文件中的
LSApplicationQueriesSchemes
键下。此外,文档警告您,自 iOS 15 以来,列出的 url 方案的数量限制为 50

我尝试过的

有 50 个条目的限制,当我查询第 51 个 url 方案时,我收到一条错误消息 “此应用程序不允许查询方案”,正如预期的那样。但是,有一些自定义应用程序(例如 Photowidget)具有巨大(远超过 50 个)

LSApplicationQueriesSchemes
列表,它们显然有办法检测应用程序是否已安装。

问题

有没有办法摆脱这个限制,或者有其他方法来检测当前设备上是否安装了应用程序?

ios swift url-scheme
1个回答
0
投票

似乎在 iOS 16 上无法检查超过 50 个第三方应用程序的安装状态。

我的假设“一定有办法绕过 50 个应用程序的限制,因为有一些应用程序(如 Photowidget)可以以某种方式做到这一点”是错误的,但事实并非如此。 为了确认这一点,我尝试了 Photowidget:我安装了一些应用程序,这些应用程序位于此列表中的第 50 个条目之前和之后。理应如此,应用程序 #2、#49 被标记为已安装,而应用程序 #56、#59、#61 则未标记为已安装。

© www.soinside.com 2019 - 2024. All rights reserved.