iOS 14 以上的系统是否能获取用户安装了哪些软件?

2021-09-16 13:24:38 +08:00
 Phishion

我有一个疑惑,比如京东、QQ 音乐这样的 APP 时不时会弹出一个菜单,请求用户参与 TestFlight 内测,我的确安装了 TestFlight,我想它是不是检测到我安装了 TestFlight 才弹出的这个窗口,不然骚扰到一般用户效率不是很低么?

iOS 14 以上版本的系统是否存在获取用户安装 APP 列表的方法?还是说仅有 TestFlight 这样的官方 APP 开放了这种权限?

1952 次点击
所在节点    iOS
14 条回复
Leonard
2021-09-16 13:26:48 +08:00
首先,确实可以检测你是否安装了 testflight ;
其次,没安装也可能弹的
devcat9
2021-09-16 13:27:35 +08:00
必须在 Info.plist 里声明你要尝试的 app 的 URL Scheme,苹果会审核。正常用途可以接受。比如 TF
Phishion
2021-09-16 13:29:17 +08:00
@devcat9 意思是直接写代码检测会被拒绝?那是挺严格的
ShuangFan
2021-09-16 13:34:48 +08:00
直接检测手机安装了哪些软件是私有 api,上商店的 app 是不敢用的
但是每个 app 一般都有自己设定的 URL Scheme,只要知道 URL Scheme,是允许检测对应 app 是否安装的,so,跟版本没啥关系
Phishion
2021-09-16 13:36:36 +08:00
@ShuangFan 这个要审么?如果不要我代码轮询一遍常见 URL Scheme 列表不就全拿到了?
fkue0487
2021-09-16 13:40:25 +08:00
@Phishion URL Scheme 是有数量限制的。
Leonard
2021-09-16 13:41:06 +08:00
你可以检测用户是否安装了某个 App,只要你知道此 App 的 URLScheme 就行,比如你在 Safari 输入 taobao:// 就可以打开淘宝 App 。
同样在 App 内也可以通过[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"taobao://"]]来检测用户是否安装了淘宝。
Phishion
2021-09-16 13:43:13 +08:00
@Leonard 谢谢,那是挺方便的
ShuangFan
2021-09-16 13:43:38 +08:00
@Phishion 楼上老哥也说了要提前加到 Info.plist 中,当然你要把常见的 app 都加进去,那确实是都可以拿到
Leonard
2021-09-16 13:45:25 +08:00
@ShuangFan #9 不用加,刚试了,直接就能检测
ShuangFan
2021-09-16 14:00:41 +08:00
@Leonard 是要加的,如果不加 canOpenURL 方法返回的始终都是 false
Leonard
2021-09-16 14:05:47 +08:00
@ShuangFan #11 嗯……canOpenURL 返回 false,但是直接 openURL 又可以打开
littiefish
2021-09-16 15:19:56 +08:00
沙盒,别想了
Building
2021-09-16 16:56:08 +08:00
有一种东西叫做广告联盟,就是你给 A 开放了权限,A 又恰好用了联盟,那么 A 接入的 SDK 就把信息都收集了,整个联盟里的 app 都可以追踪到你的信息。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX