柯南回憶錄之如何設置APP權限(三)

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。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容