
从iOS6 开始,需要得到用户的授权才能访问通讯录。
通讯录,一般在日常生活中用笔记录,也在手机,电脑,电子字典等电子产品中拥有这个功能。通讯录也可采用纸张印刷,然后装订成册,显示每个人的联系方法,地址等,称之为通讯录。
iOS开发避免不开系统权限的问题,如何在APP中以更加友好的方式向用户展示系统权限,似乎也是开发过程中指的深思的一件事。
那如何提高用户获取权限的通过率呢?以下几种方式或许是不错的尝试:
上面的只是一些尝试,与本文的主要讲述内容关系不大,接下来我们主要来看一下常用的一些系统权限的状态获取以及主动唤起权限请求的方法。
相机权限
相册权限
日历权限
麦克风权限
推送权限
定位权限
提醒事项权限
通讯录权限
互联网权限
蓝牙权限
引入头文件 #import <AVFoundation/AVFoundationh>
引入头文件 #import <Photos/Photosh>
引入头文件 #import <EventKit/EventKith>
引入头文件 #import <AVFoundation/AVFoundationh>
引入头文件 #import <UserNotifications/UserNotificationsh>
引入头文件 #import <CoreLocation/CoreLocationh>
封装方法调用
TenLocationManagerh
TenLocationManagerm
引入头文件 #import <EventKit/EventKith>
引入头文件
iOS 90前 #import <AddressBook/AddressBookh>
iOS 90后 #import <Contacts/Contactsh>
引入头文件 #import <CoreTelephony/CTCellularDatah>
系统未提供接口供开发者手动请求网络权限,iOS10以上系统,应用首次请求网络会自动d出,一个应用只d出一次,卸载也不会重新d出
引入头文件 #import <CoreBluetooth/CoreBluetoothh>
TenBluetoothManagerh
TenBluetoothManagerm
先把Demo双手奉上 我是Demo传送门
首先在infoplist里面添加读取通讯录的权限
然后再写一个宏判断系统版本,这样可以根据 ios9 来判断使用哪一种系统框架
ios 9 之前的框架----AddressBook Framework
导入框架AddressBookFramework,需要UI就导入 AddressBookUIFramework
导入头文件#import <AddressBook/AddressBookh>
ios 9之后的框架-----Contacts Framework
导入框架ContactsFramework,需要UI就导入 ContactsUIFramework导入头文件
导入#import <Contacts/Contactsh>
最后添加一个选择联系人的方法,调用系统的UI框架
ios9 之前的
和ios9 以后的
遵循代理
感谢你能看到最后,Demo再次双手奉上 我是Demo传送门
关于系统权限的获取,相信大家都不陌生,可是其中蕴含的知识确实不少。
怎样向用户索取权限是非常重要的。例如LBS类的应用,如果在索取权限时遭到用户的拒绝,那么该应用基本等同于无用了,更坏的是,点击“不允许”是很轻松的,而要撤销这个决定则不太容易,用户至少需要以下五步,一次性成功获取权限的重要性不言而喻,
关于这一点,好的设置可以概括为这样:
引入头文件 @import CoreTelephony;
应用启动后,检测应用中是否有联网权限
查询应用是否有联网功能
导入头文件 @import AssetsLibrary;
检查是否有相册权限
导入头文件 @import Photos;
检查是否有相册权限
导入头文件 @import AVFoundation;
检查是否有相机或麦克风权限
导入头文件 @import CoreLocation;
由于iOS80之后定位方法的改变,需要在infoplist中进行配置;
配置文件
检查是否有定位权限
获取定位权限
在代理方法中查看权限是否改变
检查是否有通讯权限
获取推送权限
iOS应用内跳转系统推送设置页
iOS90之前
导入头文件 @import AddressBook;
检查是否有通讯录权限
导入头文件
检查是否有日历或者备忘录权限
资讯 7月19日消息 今日上午在报道中表示,上海市消保委经抽查发现,多个地图App存在申请敏感权限与实际功能不对应的问题。消保委已就此发布通报,表示手机类App存在多重个人信息安全风险,包括过度索权、利用技术手段绕开授权流程等问题。
今日下午据报道,高德地图、百度地图、腾讯地图已经于18日的发布会上作出了回应,并于今日提交了书面反馈,表示将取消对无必要权限的获取。以下是反馈的具体内容。
高德地图:
1对于用户的数据保护,高德地图一直高度重视。在设备权限调取方面收到上海市消保委的通知之后,我们第一时间对产品进行了积极自查。
2我们正在紧急对相关权限申请进行下线处理,明天(7月20日)会发布新版。
3在旧版产品中出现的,涉及部分用户的获取手机联系人等权限申请,在我们即将发布的新版本产品中会全部取消。
4我们非常欢迎上海消保委以及社会各界对我们的持续反馈和监督。
百度地图:
1百度地图短信权限及对应功能优化。鉴于用户使用短信分享功能的场景有限,经内部评估,我们可以在后续的版本中去除短信分享的功能,从而不再获取发送短信的权限。
2对于与个人信息关系度密切的通讯录、短信等敏感权限提供“一次性授权”选项。我们将在现有的d窗基础上,结合系统可实现情况进行功能升级,针对通讯录和短信这两个权限将进行单次授权的优化,百度地图将在随后的产品版本中持续完善。
腾讯地图:
关于新闻通气会上提出的腾讯地图iOS版本获取通讯录权限的相关问题,旧版腾讯地图的分享功能在用户允许的前提下需要获取通讯录权限,即当用户分享位置时,可以在其通讯录中选择一个联系人进行分享,目前该功能已经下线。腾讯地图已在安卓版本中停止获取通讯录权限,iOS将在后续的新版本中删除该权限。
权限授权,是访问用户隐私数据时,需要用户进行授权的功能即说明。随着iOS系统版本的更新,苹果新添加、细分、修改了一些权限。
麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?
相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?
相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?
通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?
语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?
日历权限:Privacy - Calendars Usage Description
定位权限:Privacy - Location When In Use Usage Description
定位权限: Privacy - Location Always Usage Description
位置权限:Privacy - Location Usage Description
媒体库权限:Privacy - Media Library Usage Description
健康分享权限:Privacy - Health Share Usage Description
健康更新权限:Privacy - Health Update Usage Description
运动使用权限:Privacy - Motion Usage Description
音乐权限:Privacy - Music Usage Description
提醒使用权限:Privacy - Reminders Usage Description
Siri使用权限:Privacy - Siri Usage Description
电视供应商使用权限:Privacy - TV Provider Usage Description
视频用户账号使用权限:Privacy - Video Subscriber Account Usage Description
人脸识别权限 :Privacy - Face ID Usage Description iOS11以后
保存到相册 : Privacy - Photo Library Additions Usage Description
智能家居权限:Privacy - HomeKit Usage Description
<key>NSAppleMusicUsageDescription</key><string>App需要您的同意,才能访问媒体资料库</string><key>NSBluetoothPeripheralUsageDescription</key><string>App需要您的同意,才能访问蓝牙</string><key>NSCalendarsUsageDescription</key><string>App需要您的同意,才能访问日历</string><key>NSCameraUsageDescription</key><string>App需要您的同意,才能访问相机</string><key>NSHealthShareUsageDescription</key><string>App需要您的同意,才能访问健康分享</string><key>NSHealthUpdateUsageDescription</key><string>App需要您的同意,才能访问健康更新</string><key>NSLocationAlwaysUsageDescription</key><string>App需要您的同意,才能始终访问位置</string><key>NSLocationUsageDescription</key><string>App需要您的同意,才能访问位置</string><key>NSLocationWhenInUseUsageDescription</key><string>App需要您的同意,才能在使用期间访问位置</string><key>NSMicrophoneUsageDescription</key><string>App需要您的同意,才能访问麦克风</string><key>NSMotionUsageDescription</key><string>App需要您的同意,才能访问运动与健身</string><key>NSPhotoLibraryUsageDescription</key><string>App需要您的同意,才能访问相册</string><key>NSRemindersUsageDescription</key><string>App需要您的同意,才能访问提醒事项</string><key>NSSpeechRecognitionUsageDescription</key><string>App需要您的同意,才能使用语音识别</string>
参考链接: >
苹果手机通讯录的权限设置打开方法如下:
从桌面进入到手机设置页面,如图页面,并找到“隐私”选项,点击进入;
点击选项中的“通讯录”;
在d出的各应用程序是否允许访问的后面都有一个”开关“,置于开就可以访问了,如图所示;
*** 作完成。
以上就是关于ios能做到不通知用户的情况下获取通讯录吗全部的内容,包括:ios能做到不通知用户的情况下获取通讯录吗、【iOS开发笔记】系统权限的获取和请求、ios调用通讯录以及选择联系人列表方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)