• 记录 iOS 各种跳转到系统应用


    MARK

    ----拨打电话

    NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];
    if (phoneVersion.floatValue < 10.0) {
      //iOS10 以前使用
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Tel://123456"]];
    }
    else {
      //iOS10 以后使用
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Tel://123456"]
                        options:@{}
                   completionHandler:nil];
    }

    只要给出对应的URL,系统就可以直接跳

    //拨打电话
    [NSURL URLWithString:@"tel://123456"] 
    //发送短信
    [NSURL URLWithString:@"sms://123456"]
    //发邮件
    [NSURL URLWithString:@"mailto://123456@163.com"]
    //前往App Store
    [NSURL URLWithString:@"itms-apps://"]
    //使用Safari访问网址
    [NSURL URLWithString:@"http://www.baidu.com"]
    //前往iBook
    [NSURL URLWithString:@"itms-books://"]
    //发起Facetime
    [NSURL URLWithString:@"facetime://"]
    //8、调用 地图Map
    [NSURL URLWithString:@"maps://"]
    //9、调用 Music
    [NSURL URLWithString:@"music://"]
    //10、跳转到系统设置相关界面
      // iOS10 以前
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION"] options:@{} completionHandler:nil];
      // iOS10 以后
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=LOCATION"] options:@{} completionHandler:nil];

    #pragma mark - 以下为跳转设置的对应方式

    //设置
    [NSURL URLWithString:UIApplicationOpenSettingsURLString]
     
    //iCloud
    [NSURL URLWithString:@"App-Prefs:root=CASTLE"]
     
    //WIFI
    [NSURL URLWithString:@"App-Prefs:root=WIFI"]
     
    //蓝牙
    [NSURL URLWithString:@"App-Prefs:root=Bluetooth"]
     
    //蜂窝数据
    [NSURL URLWithString:@"App-Prefs:root=MOBILE_DATA_SETTINGS_ID"]
     
    //通知
    [NSURL URLWithString:@"App-Prefs:root=NOTIFICATIONS_ID"]
     
    //通用
    [NSURL URLWithString:@"App-Prefs:root=General"]
    //关于手机
    [NSURL URLWithString:@"App-Prefs:root=General&path=About"]
    //辅助功能
    [NSURL URLWithString:@"App-Prefs:root=General&path=ACCESSIBILITY"]
    //日期与时间
    [NSURL URLWithString:@"App-Prefs:root=General&path=DATE_AND_TIME"]
    //键盘设置
    [NSURL URLWithString:@"App-Prefs:root=General&path=Keyboard"]
     
    //显示与亮度
    [NSURL URLWithString:@"App-Prefs:root=DISPLAY"]
     
    //墙纸设置
    [NSURL URLWithString:@"App-Prefs:root=Wallpaper"]
     
    //声音
    [NSURL URLWithString:@"App-Prefs:root=Sounds"] 
     
    //Siri
    [NSURL URLWithString:@"App-Prefs:root=Siri"]
     
    //隐私
    [NSURL URLWithString:@"App-Prefs:root=Privacy"]
    //定位
    [NSURL URLWithString:@"App-Prefs:root=Privacy&path=LOCATION"]
     
    //电池电量
    [NSURL URLWithString:@"App-Prefs:root=BATTERY_USAGE"]
     
    //iTunes Store 与 App Store
    [NSURL URLWithString:@"App-Prefs:root=STORE"]

    -----------------------

    顺便记录一下获取权限的方法

    --判断定位权限

     // 判断是否有权限定位
        BOOL open = [CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied; // 1表示没打开定位    0 表示打开

    --判断图库权限

    导入头文件#import<Photos/Photos.h>

    PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
    
    if (status == PHAuthorizationStatusRestricted ||
    
    status == PHAuthorizationStatusDenied) {
    
    //无权限  这个时候最好给个提示,用户点击是就跳转到应用的权限设置内 用户动动小手即可允许权限
    
    }

    typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {

    PHAuthorizationStatusNotDetermined = 0,// 用户尚未做出选择这个应用程序的问候

    PHAuthorizationStatusRestricted,  // 此应用程序没有被授权访问的照片数据。可能是家长控制权限

    PHAuthorizationStatusDenied,            // 用户已经明确否认了权限的访问

    PHAuthorizationStatusAuthorized        //用户已经授权应用访问照片数据

    } PHOTOS_AVAILABLE_IOS_TVOS(8_0, 10_0);

    --判断相机权限

    #import <AVFoundation/AVCaptureDevice.h>
    
    AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    
    if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)
    
    {
    
    //无权限
    
    }

    typedefNS_ENUM(NSInteger,AVAuthorizationStatus) {AVAuthorizationStatusNotDetermined=0,// 系统还未知是否访问,第一次开启相机时AVAuthorizationStatusRestricted,// 受限制的AVAuthorizationStatusDenied,//不允许AVAuthorizationStatusAuthorized// 允许状态}NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;

    --判断麦克风权限

    #import <AVFoundation/AVCaptureDevice.h>
    
    AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
    
    if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)
    
    {
    
    //无权限
    
    }

    --判断推送权限

    #define IOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >=8.0 ? YES : NO)
    
    if (IOS8) { //iOS8以上包含iOS8
    
    if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  ==UIUserNotificationTypeNone) {
    
    NSLog(@"没有开启");
    
    }

    typedef NS_OPTIONS(NSUInteger, UIUserNotificationType) {

    UIUserNotificationTypeNone    = 0,      // 用户禁止了推送

    UIUserNotificationTypeBadge  = 1 << 0, // 用户开启了推送角标

    UIUserNotificationTypeSound  = 1 << 1, // 用户开启了推送提示音

    UIUserNotificationTypeAlert  = 1 << 2, // 用户开启了通知栏提醒

    } NS_ENUM_DEPRECATED_IOS(8_0, 10_0, "Use UserNotifications Framework's UNAuthorizationOptions") __TVOS_PROHIBITED;

  • 相关阅读:
    RESTful规范1
    Django -- 发送HTML格式的邮件
    11.10 vue
    Selenium 使用
    Beautiful Soup的用法
    Pthon常用模块之requests,urllib和re
    爬虫--工具安装Jupyter anaconda
    11-3
    Python -- tabulate 模块,
    Python -- queue队列模块
  • 原文地址:https://www.cnblogs.com/110-913-1025/p/8609251.html
Copyright © 2020-2023  润新知