如何在iPhone应用程序中显示Wifi网络列表?

5
我发现了一些私有(未公开的)API,但苹果不允许应用程序使用私有框架。那么,有谁知道如何使用苹果官方软件包来实现这一点呢?
例如:当YouTube应用程序提示您推送通知时:“选择Wi-Fi网络”
提前致谢。
3个回答

14
如果您在 info.plist 文件中设置了 UIRequiresPersistentWiFi 参数,iPhone操作系统就会知道您的应用程序需要使用 Wifi,并为您弹出消息。
据我所知,没有任何应用程序实际上手动显示 Wifi 选择提示框。

1
我错了吗?为什么这个被投票否决了?从文档中得知:“如何显示WiFi连接对话框?如果WiFi可用但当前未使用,则会显示WiFi连接对话框。如果您的应用程序需要WiFi,则需要将UIRequiresPersistentWiFi键添加到Info.plist并将其设置为True。此键通知系统您的应用程序使用WiFi网络进行通信。有关此键的其他信息,请参见iPhone应用程序编程指南中的“使用WiFi”。 - Nathaniel Martin
嗨,Nathaniel,我不知道谁给你投了反对票。但是你的解决方案对我很有效。谢谢!我会点赞并将其作为正确答案。然而,在我的iPod上测试开关Wi-Fi连接后,该应用程序不再询问我并且不再显示网络列表。我该怎么办? - RoundOutTooSoon
看起来现在应用程序使用的是 Wi-Fi,但如果您使用上述内容,Xcode 将会更新它。 - anthropomo

4

是的!有人可以告诉我们iHome是如何做到这一点的吗? - ShayanK

2
目前在iOS中,你能做的最好的事情就是显示用户当前连接到的网络。iOS不允许你从应用程序内部访问WiFi扫描。我已经为此问题苦苦挣扎了一段时间。
如果设计一个带有WiFi的配件,想要传递用户的WiFi网络SSID和密码,那么这将取决于配件是否向应用程序提供了WiFi扫描列表。然后,应用程序可以将配件提供的列表显示给用户。(我敢打赌,@zaid在他的答案中提到的应用程序“iHome Connect”就是这样做的。)
另一种方法是,你可以设计一个屏幕,提示用户输入他们已经连接到的WiFi网络的密码,然后一旦配件连接到应用程序,就可以传递这些细节,而无需WiFi网络列表。我认为这种方法具有更好的用户体验。
有很多stackoverflow的问题回答如何获取当前的WiFi网络,下面是其中的一些链接:Getting OSX Connected Wi-Fi Network Name 如何在Swift中获取Yosemite后的当前WiFi网络名称?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接