iOS 跳转到系统设置界面

在项目中,我们经常会遇到使用位置、通知的需求,当用户打开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

        Wi-Fiprefs: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

        FaceTimeprefs:root=FACETIME

        设置:prefs:root=General

        键盘设置:prefs:root=General&path=Keyboard

        iCloudprefs:root=CASTLE

        iCloud备份: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];

    [webView 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/"]];

    }


补充:系统跳转发短信界面
  
      1.导入 #import <MessageUI/MessageUI.h>
        2.遵守协议 MFMessageComposeViewControllerDelegate
        3.使用短信的系统方法:

        MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init]; // 设置短信内容 

        vc.body = @"我要去:http://blog.csdn.net/future_one"; // 设置收件人列表 
        vc.recipients = @[ @"13521673453"]; // 号码数组 
        vc.messageComposeDelegate = self// 设置代理  
         [ self presentViewController:vc animated: YES completion: nil];

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

猜你喜欢

转载自blog.csdn.net/Future_One/article/details/52067912