iOS WIFI万能钥匙实现方法

最近公司接了个外包项目,要求用到Wi-Fi相关的权限,好了,二话不说,我们来贴代码。

1.判断用户的Wi-Fi开关是否打开

/**

判断Wi-Fi开关是否打开

@return 开关状态

*/

+ (BOOL) isWiFiSwichOn {

NSCountedSet * cset = [NSCountedSet new];

struct ifaddrs *interfaces;

if( ! getifaddrs(&interfaces) ) {

for( struct ifaddrs *interface = interfaces; interface; interface = interface->ifa_next) {

if ( (interface->ifa_flags & IFF_UP) == IFF_UP ) {

[cset addObject:[NSString stringWithUTF8String:interface->ifa_name]];

}

}

}

return [cset countForObject:@"awdl0"] > 1 ? YES : NO;

}

2.跳转到系统Wi-Fi页面

NSURL* urlCheck1 = [NSURL URLWithString: @"App-Prefs:root=WIFI"];

NSURL* urlCheck2 = [NSURL URLWithString: @"prefs:root=WIFI"];

NSURL* urlCheck3 = [NSURL URLWithString: UIApplicationOpenSettingsURLString];

if ([[UIApplication sharedApplication] canOpenURL: urlCheck1]) {

[[UIApplication sharedApplication] openURL: urlCheck1];

} else if ([[UIApplication sharedApplication] canOpenURL: urlCheck2]) {

[[UIApplication sharedApplication] openURL: urlCheck2];

} else if ([[UIApplication sharedApplication] canOpenURL: urlCheck3]) {

[[UIApplication sharedApplication] openURL: urlCheck3];

} else {

return;

}

在iOS9以前由于苹果的政策我们并不能直接替用户连上某个Wi-Fi,而是通过给手机装一个Configuration Profile(在iOS9之前的Wi-Fi万能钥匙就是通过装描述文件的形式来让用户连上某个Wi-Fi)

Wi-Fi万能钥匙iOS8.4截图

具体实现参考

http://blog.csdn.net/toto18369905359/article/details/52622462

然而在iOS9之后要想实现Wi-Fi万能钥匙的样子让用户连上某个Wi-Fi然后在系统的Wi-Fi页面显示一些提示信息像下图一样

就要用到NetworkExtension/NEHotspotHelper 然后这个东西的权限苹果这边并没有进行大范围的发放,这个权限还是需要发邮件进行申请。具体申请使用流程如下

https://www.eyrefree.org/2017/03/09/2017-03-09-NEHotspotHelper/#六-演示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容