最近做的一个需求中,需要实现类似万能钥匙中点击一个Wi-Fi跳转到系统Wi-Fi设置界面的功能。下面是功能实现的代码。
NSString * urlString = @"App-Prefs:root=WIFI";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 10.0) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
}
}
类似的跳转还有如下:
无线局域网 App-Prefs:root=WIFI
蓝牙 App-Prefs:root=Bluetooth
蜂窝移动网络 App-Prefs:root=MOBILE_DATA_SETTINGS_ID
个人热点 App-Prefs:root=INTERNET_TETHERING
运营商 App-Prefs:root=Carrier
通知 App-Prefs:root=NOTIFICATIONS_ID
通用 App-Prefs:root=General
通用-关于本机 App-Prefs:root=General&path=About
通用-键盘 App-Prefs:root=General&path=Keyboard
通用-辅助功能 App-Prefs:root=General&path=ACCESSIBILITY
通用-语言与地区 App-Prefs:root=General&path=INTERNATIONAL
通用-还原 App-Prefs:root=Reset
墙纸 App-Prefs:root=Wallpaper
Siri App-Prefs:root=SIRI
隐私 App-Prefs:root=Privacy
Safari App-Prefs:root=SAFARI
音乐 App-Prefs:root=MUSIC
音乐-均衡器 App-Prefs:root=MUSIC&path=com.apple.Music:EQ
照片与相机 App-Prefs:root=Photos
FaceTime App-Prefs:root=FACETIME
只需要把对应的字符串换一下就可以了。
另外还有获取设备连接WIFI名称的方法:
- (NSString *)getWifiName {
NSString *wifiName = @"未连接";
NSArray *myArray = (id)CFBridgingRelease(CNCopySupportedInterfaces());
if (myArray.count > 0) {
NSDictionary *info = (id)CFBridgingRelease(CNCopyCurrentNetworkInfo((CFStringRef)([myArray firstObject])));
if (info[@"SSID"]) {
wifiName = [info valueForKey:@"SSID"];
NSLog(@"wifiName:%@", wifiName);
}
}
return wifiName;
}