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。