美文网首页
记录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