APP开发避免不开系统权限的问题,如何在APP以更加友好的方式向用户展示系统权限,似乎也是开发过程中值得深思的一件事;在iOS 10下 ,首次进入应用时,会有询问是否允许网络连接权限的的弹窗,为更好进行用户交互,需要在打开应用时获取应用禁用网络权限状态(状态分为:未知、限制网络、未限制网络),客户端根据不同的权限状态定制相应的人机交互。
那如何提高APP获取iOS系统权限的通过率呢?有以下几种方式:1.在用户打开APP时就向用户请求权限;2.告知用户授权权限后能够获得好处之后,再向用户请求权限;3.在绝对必要的情况下才向用户请求权限,例如:用户访问照片库时请求访问系统相册权限;4.在展示系统权限的对话框前,先向用户显示自定义的对话框,若用户选择不允许,默认无操作,若用户选择允许,再展示系统对话框。
麦克风权限:Privacy - Microphone 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 是否允许此App使用日历?
定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据
相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?
语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?
等等。
/*因为之前遇到过权限问题,在此稍微的整理一下。
*蓝牙权限
*/
-(void)ConanAccessRightBluetoothPeripheral:(void(^)(BOOLAuthorize))result;
/*
*相机权限
*/
-(void)ConanAccessRightCamera:(void(^)(BOOLAuthorize))result;
/*
*通讯录权限
*/
-(void)ConanAccessRightContacts:(void(^)(BOOLAuthorize))result;
/*
*健康分享权限
*/
-(void)ConanAccessRightHealthShare:(void(^)(BOOLAuthorize))result;
/*
*健康更新权限
*/
-(void)ConanAccessRightHealthUpdate:(void(^)(BOOLAuthorize))result;
/*
*智能家居权限
*/
-(void)ConanAccessRightHomeKit:(void(^)(BOOLAuthorize))result;
/*
*媒体库权限
*/
-(void)ConanAccessRightMediaLibrary:(void(^)(BOOLAuthorize))result;
/*
*麦克风权限
*/
-(void)ConanAccessRightMicrophone:(void(^)(BOOLAuthorize))result;
/*
*运动与健身权限
*/
-(void)ConanAccessRightMotion:(void(^)(BOOLAuthorize))result;
/*
*音乐权限
*/
-(void)ConanAccessRightMusic:(void(^)(BOOLAuthorize))result;
/*
*相册权限
*/
-(void)ConanAccessRightPhotoLibrary:(void(^)(BOOLAuthorize))result;
/*
*Siri权限
*/
-(void)ConanAccessRightSiri:(void(^)(BOOLAuthorize))result;
/*
*语音转文字权限
*/
-(void)ConanAccessRightSpeechRecognition:(void(^)(BOOLAuthorize))result;
/*
*电视供应商权限
*/
-(void)ConanAccessRightTVProvider:(void(^)(BOOLAuthorize))result;
/*
*备忘录权限、日历权限
*/
-(void)ConanAccessRightEvent:(EventAuthorizedType)eventType result:(void(^)(BOOLAuthorize))result;
/*
*定位权限
*/
- (void)ConanAccessRightLocation:(LocationAuthorizedType)authorizedType result:(LocationResult)result;
/*
*推送权限
*/
-(void)ConanAccessRightPush:(void(^)(BOOLAuthorize))result;
/*
*1、联网权限
*/
-(void)ConanAccessRightCTCellularDataRestrictedState:(void(^)(BOOLAuthorize))result;
具体设置方法在GitHub上。整个demo附上,后续持续更新。
在此感谢万能的互联网,本文仅作学习交流使用,禁止任何形式的转载和商业用途。
请勿用于商业及非法用途,如由此引起的相关法律法规责任,与我们无关!
如有疑问,请联系。
QQ 209219018 QQ群:153123137。