iOS 10之后苹果对于用户隐私方面要求非常严格,曾经帮朋友发布纯H5的APP,由于使用第三方而未加隐私权限都不让提交App Store。这边就是给大家列举下苹果对于最为常见的隐私以及平时我们开发是会用到的openUrl这方法所用到的key。
一、隐私权限
当然有朋友会说,不加隐私,让他奔溃后再log中找就好了,通常会导致奔溃的可以这样做,但是例如定位什么的就不会产生奔溃,直接是定位不出结果的,这时候就需要自己拼写了。
<key>NSPhotoLibraryUsageDescription</key> <string>访问相册</string> <key>NSCameraUsageDescription</key> <string>访问相机</string> <key>NSContactsUsageDescription</key> <string>访问通讯录</string> <key>NSMicrophoneUsageDescription</key> <string>访问麦克风</string> <key>NSAppleMusicUsageDescription</key> <string>访问媒体资料库</string> <key>NSLocationUsageDescription</key> <string>访问位置</string> <key>NSLocationWhenInUseUsageDescription</key> <string>使用期间访问位置</string> <key>NSLocationAlwaysUsageDescription</key> <string>始终访问位置</string> <key>NSCalendarsUsageDescription</key> <string>访问日历</string> <key>NSRemindersUsageDescription</key> <string>访问提醒事项</string> <key>NSMotionUsageDescription</key> <string>访问运动与健身</string> <key>NSHealthUpdateUsageDescription</key> <string>访问健康更新 </string> <key>NSHealthShareUsageDescription</key> <string>访问健康分享</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>访问蓝牙</string> <key>NSSiriUsageDescription</key> <string>访问Siri</string> <key>NSSpeechRecognitionUsageDescription</key> <string>访问语音识别</string>
以上只是列举了比较常见的。平时开发中,和手机数据交互,但代码没有问题,出现无端bug时可以考虑下是不是隐私权限问题。
二、openUrl
开发中使用以下代码可以实现快速拨打电话
NSString* phoneVersion = [[UIDevice currentDevice] systemVersion]; if (phoneVersion.floatValue < 10.0) { //iOS10 以前使用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Tel://123456"]]; } else { //iOS10 以后使用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Tel://123456"] options:@{} completionHandler:nil]; }
只要给出对应的URL,系统就可以直接跳:
//拨打电话 [NSURL URLWithString:@"tel://123456"] //发送短信 [NSURL URLWithString:@"sms://123456"] //发邮件 [NSURL URLWithString:@"mailto://123456@163.com"] //前往App Store [NSURL URLWithString:@"itms-apps://"] //使用Safari访问网址 [NSURL URLWithString:@"http://www.baidu.com"] //前往iBook [NSURL URLWithString:@"itms-books://"] //发起Facetime [NSURL URLWithString:@"facetime://"] //8、调用 地图Map [NSURL URLWithString:@"maps://"] //9、调用 Music [NSURL URLWithString:@"music://"] //10、跳转到系统设置相关界面 // iOS10 以前 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION"] options:@{} completionHandler:nil]; // iOS10 以后 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=LOCATION"] options:@{} completionHandler:nil]; #pragma mark - 以下为跳转设置的对应方式 //设置 [NSURL URLWithString:UIApplicationOpenSettingsURLString] //iCloud [NSURL URLWithString:@"App-Prefs:root=CASTLE"] //WIFI [NSURL URLWithString:@"App-Prefs:root=WIFI"] //蓝牙 [NSURL URLWithString:@"App-Prefs:root=Bluetooth"] //蜂窝数据 [NSURL URLWithString:@"App-Prefs:root=MOBILE_DATA_SETTINGS_ID"] //通知 [NSURL URLWithString:@"App-Prefs:root=NOTIFICATIONS_ID"] //通用 [NSURL URLWithString:@"App-Prefs:root=General"] //关于手机 [NSURL URLWithString:@"App-Prefs:root=General&path=About"] //辅助功能 [NSURL URLWithString:@"App-Prefs:root=General&path=ACCESSIBILITY"] //日期与时间 [NSURL URLWithString:@"App-Prefs:root=General&path=DATE_AND_TIME"] //键盘设置 [NSURL URLWithString:@"App-Prefs:root=General&path=Keyboard"] //显示与亮度 [NSURL URLWithString:@"App-Prefs:root=DISPLAY"] //墙纸设置 [NSURL URLWithString:@"App-Prefs:root=Wallpaper"] //声音 [NSURL URLWithString:@"App-Prefs:root=Sounds"] //Siri [NSURL URLWithString:@"App-Prefs:root=Siri"] //隐私 [NSURL URLWithString:@"App-Prefs:root=Privacy"] //定位 [NSURL URLWithString:@"App-Prefs:root=Privacy&path=LOCATION"] //电池电量 [NSURL URLWithString:@"App-Prefs:root=BATTERY_USAGE"] //iTunes Store 与 App Store [NSURL URLWithString:@"App-Prefs:root=STORE"]
三、总结
本文只是记录,方便以后自己查找,有遗漏的欢迎大家指出。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍IOS10 隐私权限设置实例详解,包括了IOS10 隐私权限设置实例详解的使用技巧和注意事项,需要的朋友参考一下 Xcode8,iOS10.0系统中,使用相机功能的时候报错 主要原因是iOS10之后,相册,位置,麦克风等这些需要权限验证的东西,都需要在plist文件里面添加响应的键值对。否则都会报错,使用Privacy开头的都需要添加到plist文件里面。 后面的字符串是授权时候
本文向大家介绍python实现ipsec开权限实例,包括了python实现ipsec开权限实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现ipsec开权限的方法。分享给大家供大家参考。具体实现方法如下: windows自带的命令行工具netsh ipsec static add filter不支持批量添加,还会添加重复的规则进去。我用python编写了ipsecset解
下午好.如何在不使用不同的OAUTH2服务的情况下,为一个应用程序中的特定实体(类似于RBAC/ABAC)的特定控制器配置用户的权限和角色? 还有一个名为Project的实体。用户可能是许多项目的成员。有一些项目用户角色:PROJECT_ADMIN、PROJECT_EDITO、PROJECT_USER。每个项目角色都可以拥有自己的权限(权限),如向项目添加用户、编辑项目等。所有角色配置都存储在'P
本文向大家介绍Vue实现路由跳转和嵌套,包括了Vue实现路由跳转和嵌套的使用技巧和注意事项,需要的朋友参考一下 一、配置 Router 用 vue-cli 创建的初始模板里面,并没有 vue-router,需要通过 npm 安装 安装完成后,在 src 文件夹下,创建一个 routers.js 文件,和 main.js 平级 然后在 router.js 中引入所需的组件,创建 routers 对
本文向大家介绍权限管理如何实现?相关面试题,主要包含被问及权限管理如何实现?时的应答技巧和注意事项,需要的朋友参考一下 1)前端控制: 前端的控制比较简单,从后台获取到用户的权限之后,可以存在session或者cookie中,然后在页面加载的时候,通过session或者cookie中存的权限来选择让该功能展现或者禁用。 前端实现代码详细参见:http://blog.csdn.net/liuweid
本文向大家介绍iOS 通过collectionView实现照片删除功能,包括了iOS 通过collectionView实现照片删除功能的使用技巧和注意事项,需要的朋友参考一下 一,效果图。 二,工程图。 三,代码。 ViewController.h ViewController.m photoCollectionViewCell.h photoCollectionViewCell.m 总结 以上所