13

在许多应用程序中,例如邮件应用程序,如果设备处于飞行模式,则会弹出一条通知,显示“关闭飞行模式或使用 Wi-Fi 访问数据”。

我认为如果我的应用程序尝试访问互联网,它会自动调用,但事实并非如此。有没有特殊的方法可以做到这一点,或者如果没有,我如何检查设备是否处于飞行模式并提供指向设置的链接以禁用它?

4

5 回答 5

24

如果您将UIRequiresPersistentWifi密钥添加到您的Info.plist并将其设置为YES,那么如果您处于飞行模式,您将在启动时获得标准的“关闭飞行模式...”弹出窗口。

于 2012-11-21T09:01:23.453 回答
5

我在我的应用程序中测试。我发现它变了。"UIRequiresPersistentWifi" => "应用程序使用 Wi-Fi"。我希望它会帮助某人。

xCode 目标属性

于 2014-11-10T08:39:36.010 回答
2

您可以在应用启动时使用苹果的可达性框架来检查网络连接。看一下这个

http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

我有一个用于reachbiltiy API 的包装类,以使其更易于使用。(ASIHTTPRequest 也有一个)。

https://github.com/daltoniam/GPHTTPRequest

请参阅 GPReachable 类以检查连接性。至于对话框提示,不确定是否有办法推送到设置应用程序。任何问题让我知道。

于 2012-08-14T22:50:29.887 回答
2

如果您想要标准的关闭飞行模式或使用 Wi-Fi 访问数据 [设置 | 行]

  1. info.plist通过单击+顶部的标志在您的中添加新属性。
  2. 新属性被调用UIRequiresPersistentWiFi(这类似于上面的帖子,但需要准确,否则它不会注册)
  3. 将类型从 更改StringBoolean
  4. 将值从 更改NOYES
  5. 清理并重建您的应用程序
于 2015-02-10T23:00:45.110 回答
0

看看这个。显然,Airport control was moved by Apple into a separate framework

似乎没有标准的方法来通知用户重新打开飞行模式。正如你所提到的,这显然不是很优雅,所以我认为苹果删除了这个功能。

于 2012-08-14T21:44:41.853 回答