Swift: 如何查看我的应用是否有WLAN权限以及设备是否连接到WIFI源?

Swift: How to check if my app has WLAN permission and the device is connected to a WIFI source?

我正在开发一个我需要知道的应用程序:

  1. 我的应用是否有访问WLAN网络的权限。
  2. 设备当前是否连接到WIFI。

我知道您可以使用 Reachability 检查设备是否已连接到互联网,但它 return 即使应用没有访问网络的权限也是如此。我怎么知道我上面列出的2个信息?

附加信息:这不是一个普通的应用程序。此应用程序用于通过 WIFI 控制玩具。所以我真的不在乎应用程序是否连接到互联网。我只想知道该应用程序是否具有访问 WLAN 网络的权限。

如果您担心可能有强制门户为 Reachability 提供错误的 "connected" 状态,那么您需要尝试从已知网站检索已知数据;然后,如果您获得预期的结果,您就可以相当确信您的应用程序具有网络访问权限。

例如,http://captive.apple.com returns:

<HTML>
  <HEAD>
   <TITLE>Success</TITLE>
  </HEAD>
  <BODY>
     Success
  </BODY>
</HTML>

这是 iOS 和 macOS 尝试访问的网站,以确定是否应显示热点登录助手 window。

如果 iOS 没有得到预期的 "success"(如果所有访问都重定向到 "login" 屏幕就是这种情况)或连接超时,那么助手 window 显示。