好久没有写博客了,最近在做iOSWIFi开发的部分,这里我们主要用到的API以及FrameWork有以下:
- NetworkExtension.framework
- NEHotspotHelper
一 申请
准备条件:
- 1 付费的开发者账号
- 2 公司的WebSite
- 3 明确你的Wifi开发需求
申请步骤:
1 申请网址 https://developer.apple.com//contact/network-extension/ 填写申请的相关资料
根据你项目中的具体情况,在相对应的地方打钩
- 上述表填写完毕之后,发送之后,没多久会受到一封邮件,邮件的大致内容为
大致意思就是从16年11月10日开始 可以在开发者账户的account页面创建APPID的时候添加网络扩展
- Note: NetWork Extensions能做的有限,可以获取WiFi名字和mac地址,但是注册改变Wifi设置页面子title 设置密码 并可以进行连接 这仍需我们申请并获取HotsPotHelperApi的使用权限 过两周或者更久可以收到Apple回复的是否通过的Email,如果失败了不要气馁,据很多小伙伴反应,比追姑娘都要麻烦😂
二 使用
在这里我就不多加赘述,WIFi开发的相关资料虽然很少,但是申请成功后,如何在项目中配置,这部分的文章网上有很多,具体配置给你们推荐两篇文章好吧
一些相关属性
- SSID:Wifi 名称
- BSSID:站点的 MAC 地址
- signalStrength: Wifi信号强度,该值在0.0-1.0之间
- secure:网络是否安全 (不需要密码的 Wifi,该值为 false)
- autoJoined: 设备是否自动连接该 Wifi,目前测试自动连接以前连过的 Wifi 的也为 false
- justJoined:网络是否刚刚加入
- chosenHelper:HotspotHelper是否为网络的所选助手
部分使用代码
1 | Register a Hotspot Helper |
1 | + (BOOL)logoff:(NEHotspotNetwork *)network |
- 获取wifi列表,并给系统设置页面Wifi设置子标题 可以获得wifi名称,信号强度,mac地址等等
1 | +(void)getWifiList{ |
三 思考
- 1 必须进入到系统WIFI设置页面才可以获取到WIFI列表(包括强度 WIFI名称)参考WIFI万能助手 可能都是通过LBS一些方法告诉你附近可能存在的WIFI,然后通过点击推荐的WIFI 进入下一步
- 2 点击上方任意一个可能存在的WIFI,因为Apple政策原因 无法再APP内直接连接WIFI!!! 所以万能钥匙的策略是
如下图,提供你个连接教程,将可以连接的WIFI名称进行更改,在下方加上提示文字 比如 🔑万能WIFI - 点击一键上网🔑

通过这样的方式进行连接
这里万能钥匙的做法是帮助用户跳到wifi系统设置页面,市面上还有很多需要用户自己手动进入WIFI设置页面的App,比如360免费wifi,这样虽然牺牲了一部分用户体验,但是在审核方面可以通过率大大增加,还是比较值得倡导的
- 3 不能主动通过代码的方式断开WIFI 比如 有一个按钮叫做断开WIFI 这样是不允许的 只能通过用户手动关闭WIFI或者WIFI本身无法连接网络只能通过判断当前网络状态的方式进行连接
四 总结
iOS wifi开发相关资料较少,Apple对这方面的审核也较为严格 希望这篇文章可以帮助到正在做wifi开发相关的小伙伴们,加油!