当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS开发中跳到系统设置里的各种设置界面如何实现

iOS开发中跳到系统设置里的各种设置界面如何实现

2018年10月10日  | 移动技术网IT编程  | 我要评论

眼泪的错觉 群星,丹尼尔61戴61刘易斯,林玉轩

ios开发中跳到设置里的各种设置界面如何实现。在ios开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者wifi,提醒用户打开推送或者位置权限等。在ios6之后,第三方应用需要跳转系统设置界面,需要在url type中添加一个prefs值,如下图:
需要设置prefs

\
qjifmvb.png!web.png

设置跳转有三种方式,每一种的使用场景都不同。 并且你在跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如通知,定位等。否则,会引起崩溃。

方式一:prefs:root=某项服务
方式二:prefs:root=bundleid
方式三:uiapplicationopensettingsurlstring
本篇针对ios7、ios8、ios9、ios10,来介绍其中区别。

一、跳转方法

ios系统版本 < 10.0

nsurl *url= [nsurl urlwithstring:@"prefs:root=location_services"];
if( [[uiapplication sharedapplication]canopenurl:url] ) {
   [[uiapplication sharedapplication]openurl:url];
}

ios系统版本 >= 10.0

if( [[uiapplication sharedapplication]canopenurl:url] ) {
    [[uiapplication sharedapplication]openurl:url options:@{}completionhandler:^(bool        success) {
    }];
}

可以看出,跳转方法非常简单。本文重点讲解url 怎么设置

二、跳转到哪里去?(系统的设置,系统中自己应用下面的设置)

方式一:

ios系统版本 <= ios7, 只能跳转到 系统设置页面

nsurl *url= [nsurl urlwithstring:@"prefs:root=location_services"];

跳转到: 隐私-定位服务。
prefs:root=某项服务

系统设置:prefs:root=internet_tethering
wifi设置:prefs:root=wifi
蓝牙设置:prefs:root=bluetooth
系统通知:prefs:root=notifications_id
通用设置:prefs:root=general
显示设置:prefs:root=display&brightness
壁纸设置:prefs:root=wallpaper
声音设置:prefs:root=sounds
隐私设置:prefs:root=privacy
蜂窝网路:prefs:root=mobile_data_settings_id
音乐:prefs:root=music
app store:prefs:root=store
notes:prefs:root=notes
safari:prefs:root=safari
music:prefs:root=music
photo":prefs:root=photos

这种跳转方式,都是跳转到系统的设置界面。

方式二 :

ios系统版本 >= ios8,支持跳转到第三方应用的设置界面中
使用prefs:root=bundleid ,bundleid是你第三方应用工程的唯一id
局限性:只支持ios8,ios9系统,在ios10系统上,不会跳转。 在ios7系统上,仅仅只是跳转到设置应用,不推荐使用。

如果需要继续向项目内层进行跳转,可以通过添加path路径的方式,如下:

关于本机:prefs:root=general&path=about
软件升级:prefs:root=general&path=software_update_link
日期时间:prefs:root=general&path=date_and_time
accessibility:prefs:root=general&path=accessibility
键盘设置:prefs:root=general&path=keyboard
vpn:prefs:root=general&path=vpn
壁纸设置:@"prefs:root=wallpaper
声音设置:prefs:root=sounds
隐私设置:prefs:root=privacy
app store:prefs:root=store
还原设置:prefs:root=general&path=reset
应用通知:prefs:root=notifications_id&path=应用的boundleid

更多参数字段自己查询

方式三

ios系统版本 >= ios10,支持跳转到自己应用设置,不支持跳转到系统设置

nsurl *url = [nsurl urlwithstring:uiapplicationopensettingsurlstring];

uiapplicationopensettingsurlstring字段,是在ios8上才提供的,支持ios8,ios9,ios10系统,推荐使用。
ios系统版本>= ios10,支持跳转到自己应用设置,不支持跳转到系统设置
只认

nsurl *url = [nsurl urlwithstring:uiapplicationopensettingsurlstring];

跳转。
prefs:root=bundleid和prefs:root=服务都将不起作用。

总结一下:

方式一:prefs:root=某项服务适用于 小于 ios10的系统;
方式二:prefs:root=bundleid适用于 大于等于ios8系统,小于ios10的系统。
方式三:uiapplicationopensettingsurlstring适用于 大于等于ios8的系统。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网