Phishion
V2EX  ›  iOS

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

  •  
  •   Phishion · Sep 16, 2021 · 2736 views
    This topic created in 1708 days ago, the information mentioned may be changed or developed.

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

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

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