美文网首页
记录iOS开发中的一些小技巧(二)

记录iOS开发中的一些小技巧(二)

作者: hanryChen | 来源:发表于2017-03-09 19:56 被阅读0次
    UIApplication跳转iPhone设置页面
    调用跳转设置页面的方法如下
    - (void)openURL:(NSURL *)url {
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            if ([[UIDevice currentDevice].systemVersion floatValue] < 10.0) {
                [[UIApplication sharedApplication] openURL:url];
            }else {
                //iOS10以上调用这个方法 options中参数含义有待观察
                [[UIApplication sharedApplication]
                 openURL:url options:@{
                                       UIApplicationOpenURLOptionsOpenInPlaceKey : @"0",
                                       UIApplicationOpenURLOptionsSourceApplicationKey: @"com.xxx.www"
                                       } completionHandler:^(BOOL success) {
                                           NSAssert(!success, @"调用失败");
                                       }];
            }
        }
    }
    
    跳转到当前APP的设置页
    [self openURL:UIApplicationOpenSettingsURLString];
    

    iOS10以上只能跳自己APP的设置页,如果调用未公开的方法将会影响审核,但是也有办法解决。利用ASCII值对URL进行拼装组合,可以绕过苹果的审核

    - (void)openPrivateURL:(NSURL *)url { 
        url=[NSURL URLWithString:@"Prefs:root=General&path=About"];
        
        Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
        [[LSApplicationWorkspace  performSelector:NSSelectorFromString(@"defaultWorkspace")]  performSelector:NSSelectorFromString(@"openSensitiveURL:withOptions:") withObject:url withObject:nil]
        [self openPrivateURL:url];
    }
    

    当然我们不鼓励这种行为,因为用的人多了,很容易引起苹果的注意。

    以下是跳转苹果设置的url,在app中使用将影响审核,慎用
        @"Prefs:root=General&path=About",//关于本机
        @"Prefs:root=General&path=ACCESSIBILITY",//辅助功能
        @"Prefs:root=AIRPLANE_MODE",//飞行模式
        @"Prefs:root=General&path=AUTOLOCK",//自动锁定
        @"Prefs:root=General&path=DATE_AND_TIME",//日期与时间
        @"Prefs:root=FACETIME",//faceTime
        @"Prefs:root=General&path=Keyboard",//键盘
        @"Prefs:root=CASTLE",//iCloud
        @"Prefs:root=CASTLE&path=STORAGE_AND_BACKUP",//存储空间
        @"Prefs:root=General&path=INTERNATIONAL",//语音与地区
        @"Prefs:root=LOCATION_SERVICES",//定位服务
        @"Prefs:root=ACCOUNT_SETTINGS",//邮件-通讯录-日历
        @"Prefs:root=MUSIC",//音乐
        @"Prefs:root=MUSIC&path=EQ",//音乐
        @"Prefs:root=MUSIC&path=VolumeLimit",//音乐
        @"Prefs:root=NIKE_PLUS_IPOD",//通用
        @"Prefs:root=NOTES",//备忘录
        @"Prefs:root=NOTIFICATIONS_ID",//通知
        @"Prefs:root=Phone",//电话
        @"Prefs:root=Photos",//照片与相机
        @"Prefs:root=General&path=ManagedConfigurationList",//描述文件
        @"Prefs:root=General&path=Reset",//还原
        @"Prefs:root=Sounds&path=Ringtone",//电话铃声
        @"Prefs:root=General&path=Assistant",
        @"Prefs:root=Sounds",//声音
        @"Prefs:root=General&path=SOFTWARE_UPDATE_LINK",//软件更新
        @"Prefs:root=STORE",//app store
        @"Prefs:root=TWITTER",
        @"Prefs:root=General&path=USAGE",
        @"Prefs:root=VIDEO",//视频
        @"Prefs:root=General&path=Network/VPN",
        @"Prefs:root=Wallpaper",//墙纸
        @"Prefs:root=WIFI",//wifi
        @"Prefs:root=INTERNET_TETHERING",//个人热点
        @"Prefs:root=Bluetooth";//蓝牙
    
    还有几种系统级的方法

    打开email

        [[self openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];
    

    打开Safari

        [self openURL:[NSURL URLWithString:@"http://coder-lee.lofter.com/"]];
    

    打开短信

        [self openURL:[NSURL URLWithString:@"sms://10086"]];
    

    拨打电话

        [self openURL:[NSURL URLWithString:@"tel://10086"]];
    

    相关文章

      网友评论

          本文标题:记录iOS开发中的一些小技巧(二)

          本文链接:https://www.haomeiwen.com/subject/lurggttx.html