记录 iOS 各种跳转到系统应用
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 各种跳转到系统应用的更多相关文章
- iOS应用 跳转到系统的设置界面
现在很多APP都需要获取用户权限,例如,允许调用位置信息,读取短信,拨打电话,开启WIFI,掉头摄像头等,用户不允许APP获取这些权限的时候.最好的用户体验是,直接跳转到系统设置界面,让用户自己设置. ...
- iOS之访问权限以及跳转到系统界面
iOS开发中有时候有这样的需求:当用户设置不允许访问照片.麦克风和相机等系统权限的时候,这时需要直接跳转到系统的隐私界面进行设置. 判断是否开启权限 前面已经说过,我们需要在用户不允许访问的时候跳转, ...
- iOS界面跳转的一些优化方案
原文地址: http://blog.startry.com/2016/02/14/Think-Of-UIViewController-Switch/ iOS界面跳转的一些优化方案 App应用程序开发, ...
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...
- iOS 10 跳转系统设置
苦心人天不负, 为了项目终于把 iOS 10 跳转系统设置的方法给搞定了, 很欣慰. http://www.cnblogs.com/lurenq/p/6189580.html iOS 10 跳转系统设 ...
- App跳转至系统Settings
很多著名和非著名的App有在App内通过某种方式跳转到系统Settings的功能.不论初心和交互,某认为这个功能用的好确实是很方便的,Control Center功能有限,Home键点击起来很累,至于 ...
- WebView长按保存图片;WebView不跳转到系统的浏览器;WebView加载显示进度条;WebView返回事件处理;
直接看代码即可,代码里面注释写的很清楚,这个类拉下来就能用: 写法和命名比较粗暴,但也简单易懂: public class MainActivity extends AppCompatActivity ...
- iOS应用跳转到App Store评分
iOS应用跳转到App Store评分 1.跳转到应用评价页 NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itun ...
- iOS开发 跳转场景的三种方式
iOS开发 跳转场景的三种方式 2012年10月17日, 15:32 假设A跳转到B,三种方法:1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任 ...
随机推荐
- 2017年12月13日 LinQ用法基本的增删改查
LinQ是什么? LinQ是语言集成的查询,是用于C#跟Vb的扩展语言 LinQ的用法 新建一个App_Code文件夹,在文件夹下添加一个数据LinQ to SQL类,可以直接直接点击服务器管理器然后 ...
- iframe适应屏幕大小,隐藏滚动条,移动端
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- OC与JS交互之JavaScriptCore
JavaScriptCore提供了JavaScript和Objective-C桥接的Obj-C API.JavaScriptCore提供了让我们脱离UIWebView执行JavaScript脚本的能力 ...
- Error:Annotation processors must be explicitly declared now.
环境 Android Studio 3.0 Gradle 3.0.0 gradle 4.1 Error Error:Execution failed for task ':app:javaPreCom ...
- 全面理解Java内存模型(JMM)及volatile关键字(转)
原文地址:全面理解Java内存模型(JMM)及volatile关键字 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型( ...
- Hello Activemq
0. 如果永远是localhost 可能一直low下去 1.下载安装 activemq 1.1 从官网下载activemq.tar.gz 并上传(rz)到linux系统 并解压 tar zxvf /* ...
- windows sserver 2008远程桌面端口修改
开始->运行->regedit HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStation ...
- arcgis api for javascript - 最基本的地图加载
为大家贴贴最基本的地图加载: 一. API 根据Dom树上节点的 ID 确定 Map 的显示位置; 二. setBasemap 方法可得到一些ArcGIS制作好的底图,例如: "street ...
- css3 background-sizing 属性,捎带 background-repeat 属性
background-sizing: contain: 在指定大小的容器内把图像按照图像本身长宽比扩展到最大尺寸,有可能有留白 cover: 在指定大小的容器内,把图像按照图像本身的长宽比扩展到足够大 ...
- Session和Cookie详解(1)
面试常问的有关session和cookie的问题: 1.session在分布式环境下怎么解决 2.集群下如何保证session踩中 3.cookie的大小 4.服务器怎么识别一个用户的 5.sessi ...