iOS10 應(yīng)用內(nèi)跳轉(zhuǎn)到系統(tǒng)設(shè)置

轉(zhuǎn)載自:iOS 10 應(yīng)用內(nèi)跳轉(zhuǎn)到系統(tǒng)設(shè)置

在iOS開發(fā)中,有時(shí)會有跳轉(zhuǎn)系統(tǒng)設(shè)置界面的需求,例如提示用戶打開藍(lán)牙或者WIFI,提醒用戶打開推送或者位置權(quán)限等。在iOS6之后,第三方應(yīng)用需要跳轉(zhuǎn)系統(tǒng)設(shè)置界面,需要在URL type中添加一個(gè)prefs值,需要設(shè)置prefs

設(shè)置跳轉(zhuǎn)有三種方式,每一種的使用場景都不同。 并且你在跳轉(zhuǎn)到系統(tǒng)中自己應(yīng)用下面設(shè)置的時(shí)候,你的應(yīng)用要提前至少申請了某一個(gè)權(quán)限,如通知,定位等。否則,會引起崩潰。

  • 方式一:prefs:root=某項(xiàng)服務(wù)
  • 方式二:prefs:root=bundleID
  • 方式三: UIApplicationOpenSettingsURLString
    本篇針對iOS7、iOS8、iOS9、iOS10,來介紹其中區(qū)別。

一、跳轉(zhuǎn)方法

iOS系統(tǒng)版本 < 10.0

NSURL *url= [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"];
if( [[UIApplication sharedApplication]canOpenURL:url] ) {
   [[UIApplication sharedApplication]openURL:url];
}

iOS系統(tǒng)版本 >= 10.0

if( [[UIApplication sharedApplication]canOpenURL:url] ) {
    [[UIApplication sharedApplication]openURL:url options:@{}completionHandler:^(BOOL        success) {
    }];
}

可以看出,跳轉(zhuǎn)方法非常簡單。本文重點(diǎn)講解url 怎么設(shè)置

二、跳轉(zhuǎn)到哪里去?(系統(tǒng)的設(shè)置,系統(tǒng)中自己應(yīng)用下面的設(shè)置)

  • 方式一:

    ** iOS系統(tǒng)版本 <= iOS7** , 只能跳轉(zhuǎn)到 系統(tǒng)設(shè)置頁面

NSURL *url= [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"];

跳轉(zhuǎn)到: 隱私-定位服務(wù)。
prefs:root=某項(xiàng)服務(wù)

 系統(tǒng)設(shè)置:prefs:root=INTERNET_TETHERING
 WIFI設(shè)置:prefs:root=WIFI
 藍(lán)牙設(shè)置:prefs:root=Bluetooth
 系統(tǒng)通知:prefs:root=NOTIFICATIONS_ID
 通用設(shè)置:prefs:root=General
 顯示設(shè)置:prefs:root=DISPLAY&BRIGHTNESS
 壁紙?jiān)O(shè)置:prefs:root=Wallpaper
 聲音設(shè)置:prefs:root=Sounds
 隱私設(shè)置:prefs:root=privacy
 蜂窩網(wǎng)路: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
 Camera:"prefs:root=Privacy&path=CAMERA"
 麥克風(fēng):"prefs:root=Privacy&path=MICROPHONE"
 相冊:"prefs:root=Privacy&path=PHOTOS"

這種跳轉(zhuǎn)方式,都是跳轉(zhuǎn)到系統(tǒng)的設(shè)置界面。

  • 方式二 :

    ** iOS系統(tǒng)版本 >= iOS8** ,支持跳轉(zhuǎn)到第三方應(yīng)用的設(shè)置界面中
    使用prefs:root=bundleID ,bundleID是你第三方應(yīng)用工程的唯一ID
    局限性:只支持iOS8,iOS9系統(tǒng),在iOS10系統(tǒng)上,不會跳轉(zhuǎn)。 在iOS7系統(tǒng)上,僅僅只是跳轉(zhuǎn)到設(shè)置應(yīng)用,不推薦使用。

    如果需要繼續(xù)向項(xiàng)目內(nèi)層進(jìn)行跳轉(zhuǎn),可以通過添加path路徑的方式,如下:

    關(guān)于本機(jī):prefs:root=General&path=About
    軟件升級:prefs:root=General&path=SOFTWARE_UPDATE_LINK
    日期時(shí)間:prefs:root=General&path=DATE_AND_TIME
    Accessibility:prefs:root=General&path=ACCESSIBILITY
    鍵盤設(shè)置:prefs:root=General&path=Keyboard
    VPN:prefs:root=General&path=VPN
    壁紙?jiān)O(shè)置:@"prefs:root=Wallpaper
    聲音設(shè)置:prefs:root=Sounds
    隱私設(shè)置:prefs:root=privacy
    APP Store:prefs:root=STORE
    還原設(shè)置:prefs:root=General&path=Reset
    應(yīng)用通知:prefs:root=NOTIFICATIONS_ID&path=應(yīng)用的boundleId
    

    更多參數(shù)字段自己查詢

  • 方式三

    ** iOS系統(tǒng)版本 >= iOS10**,支持跳轉(zhuǎn)到自己應(yīng)用設(shè)置,不支持跳轉(zhuǎn)到系統(tǒng)設(shè)置

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

UIApplicationOpenSettingsURLString字段,是在iOS8上才提供的,支持iOS8,iOS9,iOS10系統(tǒng),推薦使用。
iOS系統(tǒng)版本>= iOS10,支持跳轉(zhuǎn)到自己應(yīng)用設(shè)置,不支持跳轉(zhuǎn)到系統(tǒng)設(shè)置
只認(rèn)

 NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 

跳轉(zhuǎn)。
prefs:root=bundleIDprefs:root=服務(wù) 都將不起作用。

總結(jié)一下:

  • 方式一:prefs:root=某項(xiàng)服務(wù) 適用于 小于 iOS10的系統(tǒng);
  • 方式二:prefs:root=bundleID 適用于 大于等于iOS8系統(tǒng),小于iOS10的系統(tǒng)
  • 方式三:UIApplicationOpenSettingsURLString 適用于 大于等于iOS8的系統(tǒng)

參考鏈接:http://www.lxweimin.com/p/767c409c50e6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容