IOS下使用openUrl下打開不同的系統(tǒng)應(yīng)用和設(shè)置界面

[[UIApplication sharedApplication] openURL:url];
通過給url不同的值,可以實現(xiàn)調(diào)用系統(tǒng)自帶 電話/短信/郵箱/瀏覽器/...

1、調(diào)用 電話phone

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://800888"]]; 
撥打電話時不出現(xiàn)確認框
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://800888"]]; 
撥打電話之時彈出確認框

2、調(diào)用自帶 瀏覽器safari

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.abt.com"]]; 

3、調(diào)用 自帶Mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@abt.com"]]; 

4、調(diào)用 SMS

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]]; 

5、調(diào)用 app Store

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://"]]; 

6、調(diào)用 iBook

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-books://"]]; 

7、調(diào)用 Map

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"maps://"]]; 

8、調(diào)用 Facetime

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"facetime://"]]; //注意后面加上faceTime的賬號如:99999@qq.com

9、調(diào)用 Music

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"music://"]]; 

10、跳轉(zhuǎn)到系統(tǒng)設(shè)置相關(guān)界面

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

以下為設(shè)置的跳轉(zhuǎn)關(guān)鍵字
//打開關(guān)于本機

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=About"]];
 
//打開輔助功能
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=ACCESSIBILITY"]];
 
//設(shè)置飛行模式不成功,即設(shè)置界面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=AIRPLANE_MODE"]];
 
//屏幕幾分鐘之后鎖定設(shè)置
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=AUTOLOCK"]];
 
//打開Brightness不成功,設(shè)置界面
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Brightness"]];
 
  //打開藍牙設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Bluetooth"]];
 
  //設(shè)置日期與時間設(shè)置
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=DATE_AND_TIME"]];
 
  //打開FaceTime設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=FACETIME"]];
 
  //下面是打開通用設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]];
 
  //打開鍵盤設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Keyboard"]];
 
  //打開iClound設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=CASTLE"]];
 
  //打開iCloud下的儲存空間
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=CASTLE&path=STORAGE_AND_BACKUP"]];
 
  //打開通用下的語言和地區(qū)設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=INTERNATIONAL"]];
 
  //打開隱私下的定位服務(wù)
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
 
  //打開設(shè)置下的音樂
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=MUSIC"]];
 
  //打開音樂下的均衡器
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=MUSIC&path=EQ"]];
 
  //打開音樂下的什么不成功
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=MUSIC&path=VolumeLimit"]];
 
  //打開通用下的網(wǎng)絡(luò)不成功
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Network"]];
 
  //打開通用下的什么不成功
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=NIKE_PLUS_IPOD"]];
 
  //打開設(shè)置下的備忘錄設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=NOTES"]];
 
  //打開設(shè)置下的通知設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=NOTIFICATIONS_ID"]];
 
  //打開電話設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Phone"]];
 
  //打開設(shè)置下照片和相機設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Photos"]];
 
  //打開通用下的描述文件
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=ManagedConfigurationList"]];
 
  //打開通用下的還原設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Reset"]];
 
  //打開設(shè)置下的safari設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Safari"]];
 
  //打開siri不成功
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Assistant"]];
 
  //打開設(shè)置下的聲音設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Sounds"]];
 
  //打開通用下的軟件更新

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=SOFTWARE_UPDATE_LINK"]];
 
  //打開通用下的iTounes Store和App Store設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=STORE"]];
 
  //打開設(shè)置下的twitter設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
 
  //打開通用下的用量
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=USAGE"]];

  //打開通用下的vpn設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=VPN"]];
 
  //打開設(shè)置下的墻紙設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Wallpaper"]];
 
  //打開wifi設(shè)置
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

//打開設(shè)置中的隱私
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy"]];

  //打開不成功
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root= INTERNET_TETHERING"]];

問題

在iOS10之前,跳轉(zhuǎn)到系統(tǒng)設(shè)置界面的某個指定界面的方式如下:


image.png

但是在iOS10上,調(diào)用canOpenURL:打開系統(tǒng)設(shè)置界面時控制臺會報如下錯誤,并且無法跳轉(zhuǎn):


image.png

原因是iOS10只允許如下方式跳轉(zhuǎn)到設(shè)置里自己app的界面,對跳轉(zhuǎn)到其他界面做了限制。

解決方法

可以使用 MobileCoreServices.framework 里的私有API:

image.png

頭文件參考:
LSApplicationWorkspace.h

使用方法:


image.png

MobileCoreServices.framework 不是私有庫,所以直接使用 performSelector: 即可調(diào)用私有API。

注意

  • iOS10的系統(tǒng)URLScheme改成了首字母大寫,使用小寫的方式會無法打開。
  • 使用私有API的app無法通過App Store審核。你也可以嘗試把私有類名和selector字符串混淆一下,繞過審核。例如 這位仁兄 用ASCII混淆的方法:
image.png

不過,還是不建議使用私有API,因為它是不可靠的。也許某天蘋果就把它移除了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容