iOS 隐私权限和通过openURL实现跳转

iOS 10之后苹果对于用户隐私方面要求非常严格,曾经帮朋友发布纯H5的APP,由于使用第三方而未加隐私权限都不让提交App Store。这边就是给大家列举下苹果对于最为常见的隐私以及平时我们开发是会用到的openUrl这方法所用到的key。

一、隐私权限

当然有朋友会说,不加隐私,让他奔溃后再log中找就好了,通常会导致奔溃的可以这样做,但是例如定位什么的就不会产生奔溃,直接是定位不出结果的,这时候就需要自己拼写了。


未添加获取通讯录权限
NSPhotoLibraryUsageDescription 
访问相册

NSCameraUsageDescription 
访问相机 

NSContactsUsageDescription
访问通讯录

NSMicrophoneUsageDescription 
访问麦克风 

NSAppleMusicUsageDescription 
访问媒体资料库

NSLocationUsageDescription 
访问位置 

NSLocationWhenInUseUsageDescription 
使用期间访问位置 

NSLocationAlwaysUsageDescription 
始终访问位置 

NSCalendarsUsageDescription 
访问日历 

NSRemindersUsageDescription 
访问提醒事项 

NSMotionUsageDescription 
访问运动与健身 

NSHealthUpdateUsageDescription 
访问健康更新  

NSHealthShareUsageDescription 
访问健康分享 

NSBluetoothPeripheralUsageDescription 
访问蓝牙 

NSSiriUsageDescription
访问Siri

NSSpeechRecognitionUsageDescription
访问语音识别

以上只是列举了比较常见的。平时开发中,和手机数据交互,但代码没有问题,出现无端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://[email protected]"]
//前往App Store
[NSURL URLWithString:@"itms-apps://"]
//使用Safari访问网址
[NSURL URLWithString:@"http://www.baidu.com"]
//前往iBook
[NSURL URLWithString:@"itms-books://"]
//发起Facetime
[NSURL URLWithString:@"facetime://"]
//地图Map
[NSURL URLWithString:@"maps://"]
//前往Music
[NSURL URLWithString:@"music://"]
//跳转到系统设置相关界面
    // 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"]

如果需要实现APP间的跳转可以看看这篇文章

三、总结

本文只是记录,方便以后自己查找,有遗漏的欢迎大家指出。

你可能感兴趣的:(iOS 隐私权限和通过openURL实现跳转)