iOS 9 发布之后,推出NetworkExtension, 它可给系统WiFi列表列表里边的WiFi设置密码 、标签(副标题) 来直接点击连接。 还可获取整个WiFi列表。
首先,向苹果("networkextension@apple.com")发邮件申请使用权限(为什么申请之类的)。 之后苹果会回复一份邮件 类似调查问卷吧,全是单选 ,回答即可 通过之后会有邮件通知。
指导文档<https://developer.apple.com/library/ios/technotes/tn2415/_index.html#//apple_ref/doc/uid/DTS40016427
>
<https://forums.developer.apple.com/message/75928#75928
>
// 配置
结果:
应用程序的Info.plist必须添加一个包含“remote-notification”的UIBackgroundModes数组应用程序必须设置“com.apple.developer.networking.HotspotHelper'作为它的权利之一。
该权利的值是一个布尔值true要申请这个权利,请发送E-MAIL到networkextension@apple.com更多信息请参阅苹果的Hotspot Network Subsystem Programming Guide
.plist 配置
<key>UIBackgroundModes</key>
<array>
<string>network-authentication</string>
</array>
Register a Hotspot Helper
+ (BOOL)registerWithOptions:(NSDictionary*)options queue:(dispatch_queue_t)queue handler:(NEHotspotHelperHandler)handler
@param options
kNEHotspotHelperOptionDisplayName :WIFI的注释tag字符串// 此处设置的内容会在WiFi列表中每个WiFi下边展示出来
@param queue dispatch_queue_t 用来调用handle的block
@param handler NEHotspotHelperHandler block 用于执行处理 helper commands.
@return 注册成功YES, 否则NO.
@discussion 一旦这个API调用成功,应用程序有资格在后台启动,并参与各种热点相关的功能。 当应用程序启动此方法应该调用一次。再次调用它会不会产生影响,并返回NO。
Manage Hotspot Networks
+ (BOOL)logoff:(NEHotspotNetwork *)network
@param network 对应当前关联的WiFi网络NEHotspotNetwork
@return 注销命令已成功进入队列YES, 否则NO.
@discussion 调用此方法使kNEHotspotHelperCommandTypeLogoff型的NEHotspotHelperCommand向应用程序发出的“handler”模块 网络参数必须符合当前关联的WiFi网络,即它必须来自对NEHotspotHelperCommand网络属性或方法supportedInterfaces
+ (NSArray *)supportedNetworkInterfaces
@return 如果没有网络接口被管理,返回nil。否则,返回NEHotspotNetwork对象数组。
@discussion 每个网络接口由NEHotspotNetwork对象表示。当前返回的数组包含一个NEHotspotNetwork对象代表Wi-Fi接口。
这种方法的主要目的是当没有得到一个命令来处理它时,让一个热点助手偶尔提供在UI里其准确的状态。 此方法加上NEHotspotNetwork的isChosenHelper方法允许应用程序知道它是否是当前处理的网络。