V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acger
V2EX  ›  问与答

iOS 淘宝应用是怎么获取到联系人列表的?

  •  
  •   acger · 2015-03-20 11:31:02 +08:00 via iPhone · 3624 次点击
    这是一个创建于 3543 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天用淘宝充值话费时点列表框右边的联系人图标发现居然能获取到联系人列表,而系统设置是关闭的,请问这是怎么获取到的?
    7 条回复    2015-03-20 14:30:35 +08:00
    b821025551b
        1
    b821025551b  
       2015-03-20 11:44:49 +08:00
    以前获取过,你可以新建个联系人看看它这回能不能读出来
    acger
        2
    acger  
    OP
       2015-03-20 11:59:23 +08:00
    @b821025551b 试了一下,也是可以的,不知道是 iOS8 bug 还是淘宝的黑科技。
    lawder
        3
    lawder  
       2015-03-20 13:06:17 +08:00
    @acger 我猜是用了HTML5的接口来获取的
    acger
        4
    acger  
    OP
       2015-03-20 13:37:48 +08:00
    @lawder 那 iOS 权限不是形同虚设吗?
    v2Panda
        5
    v2Panda  
       2015-03-20 14:05:10 +08:00
    访问了本地通讯录吧
    lucky2touch
        6
    lucky2touch  
       2015-03-20 14:13:50 +08:00 via iPhone
    试了试客户端 感觉是调用的系统接口 应该不是直接获得通讯录的权限 是不是iOS8的新功能?
    vincentxue
        7
    vincentxue  
       2015-03-20 14:30:35 +08:00   ❤️ 6
    它使用的是 `ABPeoplePickerNavigationController` 这个类显示的。

    你的设备肯定是iOS 8,这算是 iOS 8 的新特性,但是没有提及,只是在 Release Notes 里面 提了一嘴。

    之前如果没有访问权限,这个类不会显示任何联系人,并且提示你这个应用没有权限访问你通讯录。

    但是从 iOS 8 开始,这个类会显示所有的联系人,你应用是无法访问这些联系人的,因为你无法访问它的数据源,也就是你完全不知道它显示了什么,只有用户选择了哪个,你才能访问哪个。

    所以说这是安全的,应用无法获取你的通讯录信息并且这个类现在也不支持子类化。


    如果你是开发者,你可以去看看头文件或者看看下面的链接有提及。

    https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-8.0/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:50 · PVG 15:50 · LAX 23:50 · JFK 02:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.