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. document.getElementsByTagName

    var elems = document.forms[form_name].getElementsByTagName("INPUT"); getElementsByTagName( ...

  2. jmeter简单使用示例

    1.下载后解压,运行bin目录下的jmeter.bat 2.add ThreadGroup 3.add request 4.add listener

  3. 快速了解RabbitMQ消息队列

    MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: 1.其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现 ...

  4. 三种角度解释href/src/link/import区别

    网上查到的几种不同但比较容易理解的解释 解释一: href是Hypertext Reference的缩写,表示超文本引用.用来建立当前元素和文档之间的链接.常用的有:link.a.例如: <li ...

  5. python logging的应用

    #-*-coding:utf-8-*-#util import logging import logging from logging.handlers import RotatingFileHand ...

  6. css-flex布局知识梳理

    一.传统的布局 布局的传统解决方案,基于盒装模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 二. Flex的 ...

  7. 软件项目技术点(5)——在canvas上绘制动态网格线

    AxeSlide软件项目梳理   canvas绘图系列知识点整理 grid类的实现 当鼠标在画布上缩放时,网格能跟着我的鼠标滚动而相应的有放大缩小的效果. 下面是具体实现的代码,draw函数里计算出大 ...

  8. chrome 控制台里 打印对象

    我们经常使用 chrome 的 控制台 console.log()     打印 但有时候我们需要把一个对象复制下来(而这个对象嵌套比较深) 打印出来的我们不好复制 如下图 我们可以使用谷歌控制台的c ...

  9. Linux基础之-shell script(变量,运算符,流程控制,函数)

    一.shell script Shell 脚本(shell script),是一种为shell编写的脚本程序.业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell s ...

  10. if(!IsPostBack)

    作用: Page.IsPostBack 是用来检查目前网页是否为第一次加载,当使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True:所以当 ...