V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Phishion
V2EX  ›  iOS

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

  •  
  •   Phishion · 2021-09-16 13:24:38 +08:00 · 1687 次点击
    这是一个创建于 924 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    14 条回复    2021-09-16 16:56:08 +08:00
    Leonard
        1
    Leonard  
       2021-09-16 13:26:48 +08:00
    首先,确实可以检测你是否安装了 testflight ;
    其次,没安装也可能弹的
    devcat9
        2
    devcat9  
       2021-09-16 13:27:35 +08:00
    必须在 Info.plist 里声明你要尝试的 app 的 URL Scheme,苹果会审核。正常用途可以接受。比如 TF
    Phishion
        3
    Phishion  
    OP
       2021-09-16 13:29:17 +08:00
    @devcat9 意思是直接写代码检测会被拒绝?那是挺严格的
    ShuangFan
        4
    ShuangFan  
       2021-09-16 13:34:48 +08:00
    直接检测手机安装了哪些软件是私有 api,上商店的 app 是不敢用的
    但是每个 app 一般都有自己设定的 URL Scheme,只要知道 URL Scheme,是允许检测对应 app 是否安装的,so,跟版本没啥关系
    Phishion
        5
    Phishion  
    OP
       2021-09-16 13:36:36 +08:00
    @ShuangFan 这个要审么?如果不要我代码轮询一遍常见 URL Scheme 列表不就全拿到了?
    fkue0487
        6
    fkue0487  
       2021-09-16 13:40:25 +08:00
    @Phishion URL Scheme 是有数量限制的。
    Leonard
        7
    Leonard  
       2021-09-16 13:41:06 +08:00
    你可以检测用户是否安装了某个 App,只要你知道此 App 的 URLScheme 就行,比如你在 Safari 输入 taobao:// 就可以打开淘宝 App 。
    同样在 App 内也可以通过[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"taobao://"]]来检测用户是否安装了淘宝。
    Phishion
        8
    Phishion  
    OP
       2021-09-16 13:43:13 +08:00
    @Leonard 谢谢,那是挺方便的
    ShuangFan
        9
    ShuangFan  
       2021-09-16 13:43:38 +08:00
    @Phishion 楼上老哥也说了要提前加到 Info.plist 中,当然你要把常见的 app 都加进去,那确实是都可以拿到
    Leonard
        10
    Leonard  
       2021-09-16 13:45:25 +08:00
    @ShuangFan #9 不用加,刚试了,直接就能检测
    ShuangFan
        11
    ShuangFan  
       2021-09-16 14:00:41 +08:00
    @Leonard 是要加的,如果不加 canOpenURL 方法返回的始终都是 false
    Leonard
        12
    Leonard  
       2021-09-16 14:05:47 +08:00
    @ShuangFan #11 嗯……canOpenURL 返回 false,但是直接 openURL 又可以打开
    littiefish
        13
    littiefish  
       2021-09-16 15:19:56 +08:00 via iPhone
    沙盒,别想了
    Building
        14
    Building  
       2021-09-16 16:56:08 +08:00 via iPhone
    有一种东西叫做广告联盟,就是你给 A 开放了权限,A 又恰好用了联盟,那么 A 接入的 SDK 就把信息都收集了,整个联盟里的 app 都可以追踪到你的信息。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1223 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:21 · PVG 07:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.