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. Python基础学习总结(三)

    4.if语句 If语句可以检查判定当前条件,并执行相应措施. if a in A: if a 条件: 执行命令1 4 else: 执行命令2 if判断条件还可以简写 if x: print('True ...

  2. No.2一步步学习vuejs 实例demo篇

    简单应用Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统: <div id="app"> {{ message }} </d ...

  3. 《第一行代码》Android特色开发,基于位置服务,出现的问题

    手机GPS定位较慢.精度高.耗电量多,网络定位较快.精度低.耗电量少 当位置精度要求非常高的时候,使用GPS定位:一般情况下,使用网络定位. 按<第一行代码>写了一个定位程序,真机一直没有 ...

  4. Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))

    在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...

  5. python apscheduler的使用

    from apscheduler.schedulers.blocking import BlockingSchedulerfrom datetime import datetime def my_jo ...

  6. static修饰java内部运行顺序

    package com.demo01; public class Static extends demo{ /** * @param args */ private static String str ...

  7. 记录开发Nodejs c++ addon的一些经验(三、关于node-gyp)

    关于node-gyp如何进行编译,我想它的官网已经说的很详细了: https://github.com/nodejs/node-gyp 但是我感觉关于binding.gyp文件的语法规则还是说的不明确 ...

  8. canvas的Chart图表插件

    今天写页面页面需求到柱状图标,今天介绍一下我所用的Chart.js图表插件 官网:http://www.bootcss.com/p/chart.js/         里面会有下载js文件和中文文档 ...

  9. 使用spring tool suite(STS)工具创建spring boot项目和出现错误后的处理

    一.先下载配置maven环境 1.下载地址:http://maven.apache.org/download.cgi windows下下载zip文件 2.解压后放到某个文件目录下 3.配置环境变量 ( ...

  10. 一、CSS实现横列布局的方法总结

    一.使用float实现横列布局的方法 如下面所示:DIV1和DIV2都可以选择向左或者向右浮动50%来实现展示在同一行 div1 div2 实现下面图片中布局的css样式如下: 分析: 1.第一行第一 ...