MARK

----拨打电话

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"]

-----------------------

顺便记录一下获取权限的方法

--判断定位权限

 // 判断是否有权限定位
BOOL open = [CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied; // 1表示没打开定位 0 表示打开

--判断图库权限

导入头文件#import<Photos/Photos.h>

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];

if (status == PHAuthorizationStatusRestricted ||

status == PHAuthorizationStatusDenied) {

//无权限  这个时候最好给个提示,用户点击是就跳转到应用的权限设置内 用户动动小手即可允许权限

}

typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {

PHAuthorizationStatusNotDetermined = 0,// 用户尚未做出选择这个应用程序的问候

PHAuthorizationStatusRestricted,  // 此应用程序没有被授权访问的照片数据。可能是家长控制权限

PHAuthorizationStatusDenied,            // 用户已经明确否认了权限的访问

PHAuthorizationStatusAuthorized        //用户已经授权应用访问照片数据

} PHOTOS_AVAILABLE_IOS_TVOS(8_0, 10_0);

--判断相机权限

#import <AVFoundation/AVCaptureDevice.h>

AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];

if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)

{

//无权限

}

typedefNS_ENUM(NSInteger,AVAuthorizationStatus) {AVAuthorizationStatusNotDetermined=0,// 系统还未知是否访问,第一次开启相机时AVAuthorizationStatusRestricted,// 受限制的AVAuthorizationStatusDenied,//不允许AVAuthorizationStatusAuthorized// 允许状态}NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;

--判断麦克风权限

#import <AVFoundation/AVCaptureDevice.h>

AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];

if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)

{

//无权限

}

--判断推送权限

#define IOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >=8.0 ? YES : NO)

if (IOS8) { //iOS8以上包含iOS8

if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  ==UIUserNotificationTypeNone) {

NSLog(@"没有开启");

}

typedef NS_OPTIONS(NSUInteger, UIUserNotificationType) {

UIUserNotificationTypeNone    = 0,      // 用户禁止了推送

UIUserNotificationTypeBadge  = 1 << 0, // 用户开启了推送角标

UIUserNotificationTypeSound  = 1 << 1, // 用户开启了推送提示音

UIUserNotificationTypeAlert  = 1 << 2, // 用户开启了通知栏提醒

} NS_ENUM_DEPRECATED_IOS(8_0, 10_0, "Use UserNotifications Framework's UNAuthorizationOptions") __TVOS_PROHIBITED;

记录 iOS 各种跳转到系统应用的更多相关文章

  1. iOS应用 跳转到系统的设置界面

    现在很多APP都需要获取用户权限,例如,允许调用位置信息,读取短信,拨打电话,开启WIFI,掉头摄像头等,用户不允许APP获取这些权限的时候.最好的用户体验是,直接跳转到系统设置界面,让用户自己设置. ...

  2. iOS之访问权限以及跳转到系统界面

    iOS开发中有时候有这样的需求:当用户设置不允许访问照片.麦克风和相机等系统权限的时候,这时需要直接跳转到系统的隐私界面进行设置. 判断是否开启权限 前面已经说过,我们需要在用户不允许访问的时候跳转, ...

  3. iOS界面跳转的一些优化方案

    原文地址: http://blog.startry.com/2016/02/14/Think-Of-UIViewController-Switch/ iOS界面跳转的一些优化方案 App应用程序开发, ...

  4. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  5. iOS 10 跳转系统设置

    苦心人天不负, 为了项目终于把 iOS 10 跳转系统设置的方法给搞定了, 很欣慰. http://www.cnblogs.com/lurenq/p/6189580.html iOS 10 跳转系统设 ...

  6. App跳转至系统Settings

    很多著名和非著名的App有在App内通过某种方式跳转到系统Settings的功能.不论初心和交互,某认为这个功能用的好确实是很方便的,Control Center功能有限,Home键点击起来很累,至于 ...

  7. WebView长按保存图片;WebView不跳转到系统的浏览器;WebView加载显示进度条;WebView返回事件处理;

    直接看代码即可,代码里面注释写的很清楚,这个类拉下来就能用: 写法和命名比较粗暴,但也简单易懂: public class MainActivity extends AppCompatActivity ...

  8. iOS应用跳转到App Store评分

    iOS应用跳转到App Store评分 1.跳转到应用评价页 NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itun ...

  9. iOS开发 跳转场景的三种方式

    iOS开发 跳转场景的三种方式 2012年10月17日, 15:32 假设A跳转到B,三种方法:1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任 ...

随机推荐

  1. ios下虚拟键盘出现"搜索"字样

    最近在开发过程中,发现用户输入想要检索的内容,弹出虚拟键盘,在安卓机上虚拟键盘最右下角会有‘搜索’字样,而ios上虚拟键盘最右下角只有‘换行’字样, 这样用户体验就会大打折扣. 安卓机上虚拟键盘 io ...

  2. C# Windows服务创建应用

    创建项目 1.创建windows服务项目 2.右键点击Service1.cs,查看代码, 用于编写操作逻辑代码 3.OnStart函数在启动服务时执行,OnStop函数在停止服务时执行.代码中OnSt ...

  3. iOS之nib、xib及storyboard的区别及storyboard的加载过程

    先讲述下nib, nib是3.0版本以前的产物,在终端下我们可以看到,NIB其实是一个文件夹,里面有可执行的二进制文件: 区分xib和storyboard的区别? 不同点: 1> 无论nib也好 ...

  4. js 表格合并单元格

    5列  根据需要可添加 或 删除 strOneTemp  strTwoTemp  strThreeTemp  strFourTemp  strFiveTemp //合并单元格  this.mergeC ...

  5. php 正则验证

      PHP 正则验证字符串是否为数字 方法一: php中利用正则表达式验证字符串是否为数字一件非常容易的事情,最主要的是如何写好正则表达式以及掌握正则表达式的写法,在此利用正则表达式的方式来列举一下判 ...

  6. 三、Host-Only(仅主机模式)

    Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模 ...

  7. csharp: using OleDb Getting the identity of the most recently added record

    /// <summary> /// 执行SQL语句,返回影响的记录数 /// </summary> /// <param name="SQLString&quo ...

  8. Js事件监听封装(支持匿名函数)

    先看demo:http://liutian1937.github.io/demo/EventListen.html/*绑定事件与取消绑定*/ var handleHash = {}; var bind ...

  9. 移动端开发:iOS与Android平台上问题列表

    要CSS伪类 :active 生效,只需要给 document 绑定 touchstart 或 touchend 事件 <style> a { color: #000; } a:activ ...

  10. MySQL数据库备份与还原

    备份数据库 1.使用mysqldump命令备份 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql           如 ...