ios 权限提示语_最友好的访问权限之iOS权限提示
先来看Periscope的两张截图,国内目前还没有见到过细节如此精致的产品。
Periscope
Periscope
想到国内APP的一个一个挨着点的糟糕体验再对比下Periscope,我的心痒痒了。于是在520这个单身狗的日子里我决定写出来封装出来。
iOS的各种权限
1.定位权限 Privacy - Location When In Use Usage Description|Privacy - Location Always Usage Description|Privacy - Location Usage Description
2.蓝牙权限 Privacy - Bluetooth Peripheral Usage Description
3.推送权限 (Target-选项开关打开)
4.媒体资料库权限 Privacy - Media Library Usage Description
5.语音识别权限 Privacy - Speech Recognition Usage Description
6.日历权限 Privacy - Calendars Usage Description
7.相册权限 Privacy - Photo Library Usage Description
8.相机权限 Privacy - Camera Usage Description
9.通讯录权限 Privacy - Contacts Usage Description
10.麦克风权限 Privacy - Microphone Usage Description
11.提醒事项权限 Privacy - Reminders Usage DescriptionPrivacy - Reminders Usage Description
12.运动与健身 Privacy - Motion Usage Description
....
一开始想到了前面3个有代理所以画了个脑图决定规划一下,如下:
1.NSAuthorityStatus
负责管理权限的各种状态
NSAuthorityStatus
2.NSAuthorityProtocol
负责管理定位变化等前面三个权限的代理
时间关系实现了第一个协议,一觉睡醒下午3点了。想着一切从简单调用就匆匆搞完第一个协议开始写下面的调用方法。
NSAuthorityProtocol
3.NSAuthoritySingleton
纯属个人爱好的单例使用方法。仁者见仁智者见智了,图没截完整。
NSAuthoritySingleton
4.NSAuthorityManager
顾名思义管理器,负责查看权限是否开启以及相应的调用开启方法。
NSAuthorityManager
以语音识别权限为例,Bool方法判断是否开启了语音识别的权限用于项目中进行判断处理,
SFSpeechRecognizerAuthorizationStatus status = [SFSpeechRecognizer authorizationStatus];
if (status == SFSpeechRecognizerAuthorizationStatusNotDetermined) {
DLog(@"语音识别权限:未选择权限(NotDetermined)");
return NO;
}else if (status == SFSpeechRecognizerAuthorizationStatusDenied){
DLog(@"语音识别权限:用户拒绝App使用(Denied)");
return NO;
}else if (status == SFSpeechRecognizerAuthorizationStatusRestricted){
DLog(@"语音识别权限:未授权(Restricted)");
return NO;
}
DLog(@"语音识别权限:已授权(Authorized)"); //SFSpeechRecognizerAuthorizationStatusAuthorized
return YES;
void方法则用来开启对应的权限
[SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status) {
if (status == SFSpeechRecognizerAuthorizationStatusNotDetermined) {
DLog(@"语音识别开启权限:未选择权限(NotDetermined)");
}else if (status == SFSpeechRecognizerAuthorizationStatusDenied){
DLog(@"语音识别开启权限:用户拒绝App使用(Denied)");
}else if (status == SFSpeechRecognizerAuthorizationStatusRestricted){
DLog(@"语音识别开启权限:未授权(Restricted)");
}else if (status == SFSpeechRecognizerAuthorizationStatusAuthorized){
DLog(@"语音识别开启权限:已授权(Authorized)");
}
}];
调用方法
判断是否开启,如果未开启则通过单例调用进行开启操作。个别权限需要直接打开设置进行。则在manager文件里加入:
#define kStartProgramAuthority [[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{UIApplicationOpenURLOptionUniversalLinksOnly:@""} completionHandler:^(BOOL success) { }];
即可。
演示效果
点击按钮调用权限
cocoapods
pod 'NSAuthorityManager'
Demo地址
如果对你有帮助那真是太好了,我希望国内程序员做东西越来越走心。太饿了,溜了溜了,闲了再继续完善。
ios 权限提示语_最友好的访问权限之iOS权限提示相关推荐
- 提示语_《流浪地球》里洗脑的交通提示语怎么来的?吴京可能要“负全责”
看完<流浪地球>,相信很多人对"道路千万条,安全第一条,行车不规范,亲人两行泪"这句"北京第三交通委"的交通提示语都印象深刻,甚至可以说看完电影几天 ...
- ios 权限提示语_撩妹神技?iOS 微信偷偷上线“拍一拍”
微信 概要 / 最近微信新功能不断,安卓和 iOS 前后上线了「修改微信号」功能,给了网友们"重新做人"的机会,这不,又来了一个新功能,iOS 的微信可以"拍一拍&quo ...
- 提示语_交通安全提示语
一."一盔一带"提示语 1.安全带-生命带!驾车出行,莫忘安全! 2.安全带是"保命带""救命绳"! 3.乘车系好安全带,发生意外防伤害! ...
- 前台离岗提示语_商品住宅前台会客区标牌提示语
深圳市开元国际物业管理有限公司是国家一级资质企业,创造了具有独立知识产权的"东方管家"物业服务模式,特征集商品住宅前台会客区标牌提示语,要求作品须富含文化底蕴,意境深远,幽默诙谐, ...
- ios 蓝牙命令发送_实战恢复cisco 2950交换机的IOS
本来想用两台思科交换机做实验的,可是通过console口进入其中一台交换机后却发现这个台交换机的IOS文件丢失了.本来正常进入交换机后应该是首先进入到用户模式的,而且提示符应该是">& ...
- ios 查看同文件名_实战恢复cisco 2950交换机的IOS
本来想用两台思科交换机做实验的,可是通过console口进入其中一台交换机后却发现这个台交换机的IOS文件丢失了.本来正常进入交换机后应该是首先进入到用户模式的,而且提示符应该是">& ...
- 客服不在线时候的提示语可以修改吗?怎样才可以修改留言提示内容呢?
客服不在线时候的提示语是可以修改. 第一步 登录电脑版ttkefu软件,点击设置-获取代码 第二步 点击电脑样式,下拉找到留言配置及风格,点击进入设置 第三步 点击基础配置 修改留言前提示语言就可以了 ...
- ios 检测是否联网_具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能...
9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...
- 前台离岗提示语_前台卫生温馨提示语
卫生为健康护航,服务携社区腾飞.你们听说前台卫生温馨提示语有哪些吗?那么学习啦小编为大家整理了前台卫生温馨提示语,欢迎阅览! 前台卫生温馨标语 1. 广告牌匾安装好,以免意外生烦恼. 2. 遵守社会公 ...
最新文章
- WAIC 2021 | 中国惠普周信宏:AI基础设施——边缘计算演进及趋势
- window 服务(二)
- ADO.NET教程(一)
- 【转】Dicom基础知识
- Enterprise Vault 2007 Series [PST Migration]
- while/for 嵌套expect 批量免密码传文件
- 统计学习方法第二版知识点合集 - 自用笔记
- java 循环效率_Java For循环效率测试
- 详解基于J2ME平台下SOAP协议的应用
- CentOS 7.4系统安装配置图解教程
- 《算法图解》——狄克斯特拉算法
- ******2:***常用工具排行榜-《百晓生兵器谱》
- 计算机学科 集体备课记录,信息技术学科组集体备课活动记录
- 机器学习数学基础学习总结(一)
- html编码写出滚动字幕,HTML滚动字幕代码及参数详解_html/css_WEB-ITnose
- springboot +vue实现打印PDF(实现批量打印快递单)
- 使用Excel获取数据
- 前端---js中onmouseover和onmouseout事件
- 模拟电子技术基础实验6.5
- python找出主力合约价格_Python实盘交易之期货指数映射主力与“自动换月”
热门文章
- MFC COM 串口通信
- 宇文成 Python 学生信息管理系统
- 一年工作 3600 小时,被裁只要半小时
- 安卓最新系统_诺基亚安卓手机均已升级为安卓9 谷歌“干儿子”果然名不虚传...
- python阈值分割_opencv 阈值分割的具体使用
- python middleware_Django框架教程之中间件MiddleWare浅析
- Ubuntu下l4d2服务器搭建
- 【修真院web小课堂】对一个数组 FILTER、SOME、MAP、FOREACH的操作分别有什么作用?
- 前端资源(css,js,图片,接口等)加载过程
- 世界500强最新一轮排名出炉,最赚钱的行业竟然是它!?