iOS應(yīng)用內(nèi)跳轉(zhuǎn)到系統(tǒng)設(shè)置
設(shè)置跳轉(zhuǎn)有三種方式,每一種的使用場景都不同。 并且你跳轉(zhuǎn)到系統(tǒng)中自己應(yīng)用下面設(shè)置的時候,你的應(yīng)用要提前至少申請了某一個權(quán)限,如(通訊錄,通知,定位等)。否則,會引起崩潰。
方式一:PRefs:root=某項服務(wù)方式二:prefs:root=bundleID方式三: UIapplicationOpenSettingsURLString
本篇針對iOS7、iOS8、iOS9、iOS10,來介紹其中區(qū)別。一、跳轉(zhuǎn)方法iOS系統(tǒng)版本 < 10.0if( [[UIApplicationsharedApplication]canOpenURL:url] ) { [[UIApplicationsharedApplication]openURL:url];}iOS系統(tǒng)版本 >= 10.0if( [[UIApplication sharedApplication]canOpenURL:url] ) { [[UIApplication sharedApplication]openURL:url options:@{}completionHandler:^(BOOL success) { }];}可以看出,跳轉(zhuǎn)方法非常簡單。本文重點講解url 怎么設(shè)置
二、跳轉(zhuǎn)到哪里去?(系統(tǒng)的設(shè)置,系統(tǒng)中自己應(yīng)用下面的設(shè)置)version <= iOS7 , 只能跳轉(zhuǎn)到系統(tǒng)設(shè)置頁面;
iOS8 <= version<= iOS10,即支持跳轉(zhuǎn)到系統(tǒng)設(shè)置頁面,又支持跳轉(zhuǎn)到自己應(yīng)用設(shè)置;
version >= iOS10,支持跳轉(zhuǎn)到自己應(yīng)用設(shè)置,不支持跳轉(zhuǎn)到系統(tǒng)設(shè)置;
方式一:
prefs:root=某項服務(wù)
先在項目中的info中添加 URL types, 并添加 URL Schemes 為 prefs的url,如下圖:

然后在跳轉(zhuǎn)代碼處編輯URL,如下:
NSURL *url= [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"];跳轉(zhuǎn)到: 隱私-定位服務(wù)。
其他:
About — prefs:root=General&path=About accessibility — prefs:root=General&path=ACCESSIBILITY AirplaneModeOn— prefs:root=AIRPLANE_MODE Auto-Lock — prefs:root=General&path=AUTOLOCK Brightness — prefs:root=Brightness Bluetooth — prefs:root=General&path=BluetoothDate& Time — prefs:root=General&path=DATE_AND_TIME FaceTime — prefs:root=FACETIMEGeneral— prefs:root=GeneralKeyboard — prefs:root=General&path=Keyboard iCloud — prefs:root=CASTLE iCloud Storage & Backup — prefs:root=CASTLE&path=STORAGE_AND_BACKUP International — prefs:root=General&path=INTERNATIONAL Location Services — prefs:root=LOCATION_SERVICES Music — prefs:root=MUSIC Music Equalizer — prefs:root=MUSIC&path=EQ Music VolumeLimit— prefs:root=MUSIC&path=VolumeLimit Network — prefs:root=General&path=Network Nike + ipod — prefs:root=NIKE_PLUS_IPOD Notes — prefs:root=NOTES Notification — prefs:root=NOTIFICATIONS_ID Phone — prefs:root=Phone Photos — prefs:root=Photos Profile — prefs:root=General&path=ManagedConfigurationList Reset — prefs:root=General&path=Reset Safari — prefs:root=Safari Siri — prefs:root=General&path=Assistant Sounds — prefs:root=Sounds SoftwareUpdate— prefs:root=General&path=SOFTWARE_UPDATE_LINK Store — prefs:root=STORE Twitter — prefs:root=TWITTER Usage — prefs:root=General&path=USAGE VPN — prefs:root=General&path=Network/VPN Wallpaper — prefs:root=Wallpaper Wi-Fi — prefs:root=WIFI
這種跳轉(zhuǎn)方式,都是跳轉(zhuǎn)到系統(tǒng)的設(shè)置界面。
方式二 : prefs:root=bundleID, bundleID是你工程的唯一ID局限性:只支持iOS8,iOS9系統(tǒng),在iOS10系統(tǒng)上,不會跳轉(zhuǎn)。 在iOS7系統(tǒng)上,僅僅只是跳轉(zhuǎn)到設(shè)置應(yīng)用,不推薦使用。
方式三:NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 就會跳轉(zhuǎn)到設(shè)置中自己的app的設(shè)置界面,這里會有通知和位置權(quán)限的設(shè)置。UIApplicationOpenSettingsURLString字段,是在iOS8上才提供的,支持iOS8,iOS9,iOS10系統(tǒng),推薦使用。
只認(rèn)NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];跳轉(zhuǎn)。而 prefs:root=bundleID和 prefs:root=服務(wù) 都將不起作用。
總結(jié)一下:方式一:prefs:root=某項服務(wù) 適用于 小于 iOS8的系統(tǒng);方式二:prefs:root=bundleID 適用于 大于等于iOS8系統(tǒng),小于iOS10的系統(tǒng)方式三:UIApplicationOpenSettingsURLString 適用于大于等于iOS8的系統(tǒng)
新聞熱點
疑難解答
圖片精選