苦心人天不负, 为了项目终于把 iOS 10 跳转系统设置的方法给搞定了, 很欣慰.
http://www.cnblogs.com/lurenq/p/6189580.html
iOS 10 跳转系统设置的字段
-
电池电量
Prefs:root=BATTERY_USAGE -
通用设置
Prefs:root=General -
存储空间
Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE -
蜂窝数据
Prefs:root=MOBILE_DATA_SETTINGS_ID -
Wi-Fi 设置
Prefs:root=WIFI -
蓝牙设置
Prefs:root=Bluetooth -
定位设置
Prefs:root=Privacy&path=LOCATION -
辅助功能
Prefs:root=General&path=ACCESSIBILITY -
关于手机
Prefs:root=General&path=About -
键盘设置
Prefs:root=General&path=Keyboard -
显示设置
Prefs:root=DISPLAY -
声音设置
Prefs:root=Sounds -
App Store 设置
Prefs:root=STORE -
墙纸设置
Prefs:root=Wallpaper -
打开电话
Mobilephone:// -
世界时钟
Clock-worldclock:// -
闹钟
Clock-alarm:// -
秒表
Clock-stopwatch:// -
倒计时
Clock-timer:// -
打开相册
Photos://
- (void)encryptMethodGoToSettingWiFi {
NSString *encryptWork = [self encryptDefaultWork];
NSString *encryptWiFi_Method = [self getGoToWIFI_Method];
NSURL*url = [NSURL URLWithString:@"Prefs:root=WIFI"];
Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
[[LSApplicationWorkspace performSelector:NSSelectorFromString(encryptWork)]
performSelector:NSSelectorFromString(encryptWiFi_Method)
withObject:url
withObject:nil];
}
// 利用ASCII值进行拼装组合方法。这样可绕过审核, 这么写也有弊端,如果苹果的未公开方法一旦修改。我们必须重新进行修改
-(NSString *)encryptDefaultWork{
NSData *data_encrypted = [NSData dataWithBytes:(unsigned char []){0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b,0x73,0x70,0x61,0x63,0x65} length:16];
NSString *method = [[NSString alloc] initWithData:data_encrypted encoding:NSASCIIStringEncoding];
return method;
}
-(NSString *)getGoToWIFI_Method{
NSData *data_encrypted_one = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55,0x52,0x4c} length:16];
NSString *key_encrypted_one = [[NSString alloc] initWithData:data_encrypted_one
encoding:NSASCIIStringEncoding];
NSData *data_encrypted_Two = [NSData dataWithBytes:(unsigned char []){0x77,0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} length:11];
NSString *key_encrypted_two = [[NSString alloc] initWithData:data_encrypted_Two
encoding:NSASCIIStringEncoding];
NSString *method = [NSString stringWithFormat:@"%@%@%@%@",key_encrypted_one,@":",key_encrypted_two,@":"];
return method;
}