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

Ios Swift:如何检查我的应用程序是否具有WLAN权限,以及设备是否连接到WIFI源?,ios,iphone,swift,permissions,reachability,Ios,Iphone,Swift,Permissions,Reachability,我正在开发一个应用程序,我需要知道: 我的应用程序是否具有访问WLAN网络的权限 设备当前是否连接到WIFI 我知道您可以使用可达性检查设备是否连接到互联网,但即使应用程序没有访问网络的权限,它也会返回true。我如何知道上面列出的2个信息 附加信息:这不是一个常规应用程序。此应用程序用于通过WIFI控制玩具。所以我并不在乎这个应用程序是否连接到互联网。我只想知道该应用程序是否有访问WLAN网络的权限。如果您担心可能有一个被捕获的门户提供了虚假的“已连接”状态以实现可访问性,那么您需要尝试从已知

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

  • 我的应用程序是否具有访问WLAN网络的权限
  • 设备当前是否连接到WIFI
  • 我知道您可以使用可达性检查设备是否连接到互联网,但即使应用程序没有访问网络的权限,它也会返回true。我如何知道上面列出的2个信息


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

    如果您担心可能有一个被捕获的门户提供了虚假的“已连接”状态以实现可访问性,那么您需要尝试从已知网站检索已知数据;然后,如果你得到了预期的结果,你可以相当有信心,你的应用程序可以访问网络

    例如,返回:

    
    成功
    成功
    
    这是iOS和macOS试图访问的网站,以确定是否应显示hotspot login helper窗口


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

    但有时如果我们连接到具有防火墙的网络。在那个网络上,您将被连接,但无法访问它,因为您必须登录网络,所以我们如何才能识别我们是否登录?这正是我在回答中描述的;您连接到已知站点并检索一些已知数据;如果这个连接起作用,并且你得到了已知的数据,你就可以继续了。如果连接失败或您返回了一些其他数据(比如“登录”屏幕),则会出现问题。感谢您的回复,很抱歉,我在问题描述中遗漏了一些关键信息。我已经添加了额外的信息。如果您只需要本地网络访问,那么您不可能没有“权限”。你要么有WiFi连接,要么没有。如果WiFi网络需要密钥,而用户没有;输入后,您将无法连接。如果网络不需要密钥或者用户输入了密钥,那么无论是否有路由器阻止您访问Internet,您都可以访问本地网络。您将遇到的问题是,可访问性使用与Internet主机联系的能力来确定网络可用性。先前链接到Tofaani的代码可能会帮助您;如果您连接到WiFi,即使该WiFi上没有互联网,也会返回true。
    <HTML>
      <HEAD>
       <TITLE>Success</TITLE>
      </HEAD>
      <BODY>
         Success
      </BODY>
    </HTML>