在项目中,我们经常会遇到使用位置、通知的需求,当用户打开App时,经常喜欢关闭一切提醒的设置,我们需要提供给用户设置这些设置的帮助页面,使用快捷方式的方法设置,提高用户的体验度
在自己的项目中
需要设置我们的代码,在执行的方法中执行如下代码,就会跳到系统的通知的设置中,代码如下:
Swift:

let url =NSURL.init(string:"prefs:root=LOCATION_SERVICES")
ifUIApplication.sharedApplication().canOpenURL(url!) {
            UIApplication.sharedApplication().openURL(url!)
        }
OC:
 NSURL *url = [NSURLURLWithString:@"prefs:root=LOCATION_SERVICES"];
if ([[UIApplicationsharedApplication] canOpenURL:url]) {
[[UIApplicationsharedApplication] openURL:url];
 }

跳到系统的通知设置页面
代码如下:

Swift:

let url =NSURL.init(string:"prefs:root=NOTIFICATIONS_ID")
ifUIApplication.sharedApplication().canOpenURL(url!) {
UIApplication.sharedApplication().openURL(url!)
}
OC:
  NSURL *url = [NSURLURLWithString:@"prefs:root=NOTIFICATIONS_ID"];
    if ([[UIApplicationsharedApplication] canOpenURL:url]) {
        [[UIApplicationsharedApplication] openURL:url];
    }
 
 
 
 


 
 
 
 
关于IOS系统功能的URL 汇总列表:
 
 
 
 
 
 
 
定位:prefs:root=LOCATION_SERVICES
 
  蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID
        VPN — prefs:root=General&path=Network/VPN
:prefs:root=WIFI
定位服务:prefs:root=LOCATION_SERVICES
个人热点:prefs:root=INTERNET_TETHERING
关于本机:prefs:root=General&path=About
辅助功能:prefs:root=General&path=ACCESSIBILITY
飞行模式:prefs:root=AIRPLANE_MODE
锁定:prefs:root=General&path=AUTOLOCK
亮度:prefs:root=Brightness
蓝牙:prefs:root=General&path=Bluetooth
时间设置:prefs:root=General&path=DATE_AND_TIME
:prefs:root=FACETIME
设置:prefs:root=General
键盘设置:prefs:root=General&path=Keyboard
:prefs:root=CASTLE
备份:prefs:root=CASTLE&path=STORAGE_AND_BACKUP
语言:prefs:root=General&path=INTERNATIONAL
音乐:prefs:root=MUSIC
        Music Equalizer — prefs:root=MUSIC&path=EQ
        Music Volume Limit — 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
        Software Update — prefs:root=General&path=SOFTWARE_UPDATE_LINK
        Store — prefs:root=STORE
        Twitter — prefs:root=TWITTER
        Usage — prefs:root=General&path=USAGE
        Wallpaper — prefs:root=Wallpaper
 
 
        
 
iOS调用系统功能 
 
 
在iOS开发过程中,有时我们想在应用内实现打电话、发短信、打开Safari浏览器功能,具体常用功能如下: 
 
 
调用打电话功能(此种方法会直接进行拨打电话,电话结束后会留在电话界面)
 
 
 if ([[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"tel://135XXXX3453"]])
    {
        [[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"tel://135XXXX3453"]];
    }
//    调用打电话功能(此种方法会询问是否拨打电话,电话结束后会返回到应用界面,但是有上架App Store被拒的案例)
    
    if ([[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"telprompt://135XXXX3453"]])
    {
        [[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"telprompt://135XXXX3453"]];
    }
 
  
 
   
 
  
 
 
调用打电话功能(此种方法会询问是否拨打电话,电话结束后会返回到应用界面,此种方法是加载了一个UIWebView实现,支持上架App Store)
UIWebView *webView = [[UIWebViewalloc] init];
loadRequest:[NSURLRequest
requestWithURL:
NSURLURLWithString:@"tel://135XXXX3453"]]];
 
 
[self.view addSubview:webView];
 
 
调用发短信功能(此种方法会直接跳转到给指定号码发送短信,短信结束后会留在短信界面)
if ([[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"sms://135XXXX3453"]])
    {
        [[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"sms://135XXXX3453"]];
    }
 
 
 
  
 
 
调用Safari浏览器功能(在开发中遇到应用内打开网页的需求,建议使用UIWebView打开)
 if ([[UIApplicationsharedApplication]
         canOpenURL:[NSURLURLWithString:@"http://www.baidu.com/"]])
    {
        [[UIApplicationsharedApplication]
         openURL:[NSURLURLWithString:@"http://www.baidu.com/"]];
    }
 
 
 
  
 
 
补充:系统跳转发短信界面
   

导入 #import <MessageUI/MessageUI.h> 

 
        2.遵守协议 MFMessageComposeViewControllerDelegate
        3.使用短信的系统方法: 

// 设置短信内容
 
@"我要去:"; 
 // 设置收件人列表
 
@"13521673453"]; 
 // 号码数组
 
self;  
 // 设置代理
 
self presentViewController:vc animated: 
 YES completion: 
 nil]; 

 
 
 
 

  //代理方法 

 
void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result{  
 
 
 
// 关闭短信界面
 
 
YES completion: 
  nil];  
 
 
 
if(result == MessageComposeResultCancelled) {  
 
 
 
NSLog( 
  @"取消发送");  
 
 
 
else 
  if(result == MessageComposeResultSent) {  
 
 
 
NSLog( 
  @"已经发出");  
 
 
 
else
 
 
NSLog( 
  @"发送失败");  
 
 
 

    } 
 
 
 

   }