ios - Swift:如何检查我的应用程序是否具有 WLAN 权限以及设备是否已连接到 WIFI 源?

标签 ios iphone swift permissions reachability

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

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

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

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

最佳答案

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

例如,http://captive.apple.com返回:

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

这是 iOS 和 macOS 尝试访问的网站,以确定是否应显示热点登录帮助程序窗口。

如果 iOS 没有获得预期的“成功”(如所有访问都重定向到“登录”屏幕时的情况)或连接超时,则会显示帮助程序窗口。

关于ios - Swift:如何检查我的应用程序是否具有 WLAN 权限以及设备是否已连接到 WIFI 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482545/

相关文章:

ios - Xcode 7.1 : Simulator can't be opened because the identity of developer cannot be confirmed

ios - 如何安全地解包我的核心数据对象

ios - UITableViewCell 中的 2 个标签,无需自定义单元格

iphone - 通过我的 iPhone 应用启动 Guitar Pro

ios - 应用程序进入后台后每 n 分钟获取一次用户位置

iphone - 如何在 Storyboard 中创建 UIScrollView?

iphone - 动态更改 UITableView 单元格分隔线颜色

swift - Swift 中的单例

arrays - 点击 CollectionView Cell 按钮可播放特定阵列中的声音并从特定阵列中复制电影

ios - Scenekit 中的变换和旋转