【问题标题】:How do I restrict access to UIViewController's that rely on an internet connection?如何限制对依赖 Internet 连接的 ViewController 的访问?
【发布时间】:2014-07-30 12:07:15
【问题描述】:

我需要限制对我的应用中依赖互联网连接的页面的访问。我的几个页面都有帮助应用程序与外部数据库通信的代码。

当互联网连接不可用时,页面不会按预期运行,因为对数据库进行了某些检查,以确定某些内容在页面上的显示方式。

有没有办法检测没有互联网连接,以及当没有任何页面自动尝试连接到互联网/从外部数据库获取数据受到限制?

可能会显示一些“当前故障,请稍后再试”页面或类似的内容?

感谢您的宝贵时间。

【问题讨论】:

  • 您可以使用Reachability 类来检查互联网可用性。如果用户离线,请提供警报或显示备用页面
  • 可达性对我来说没有按预期工作。老实说,我只是建议在那些本身需要网络连接的视图控制器中处理网络错误。

标签: ios objective-c cocoa-touch uiview uiviewcontroller


【解决方案1】:

是的,正如所有人所说,使用可达性检查互联网连接。下载 .h 和 .m 文件代码from here 并添加到您的项目中。

然后在你的 .h 文件中

#import "Reachability.h"
@interface ViewController : UIViewController
{
    NetworkStatus netStatus;
    Reachability *reach;
}

在你的 .m 文件中

reach = [Reachability reachabilityForInternetConnection];
netStatus = [reach currentReachabilityStatus];
if (netStatus != NotReachable)
{
     //present your view which needs internet connection.
}
else
{
     //show alert or message "Currently out of order please try again later"
}

【讨论】:

    【解决方案2】:

    正如其他人已经说过的,使用可达性类可能是您想要做的。如果您已经在使用像 AFNetworking 这样的库来进行网络连接,那么它提供了自己的可达性类。

    此外,我处理此问题的方式是让您的每个视图控制器监听可达性通知,如果没有互联网,则禁用与用户元素的交互,这会将用户带到需要互联网连接的不同视图控制器同时在导航栏下方显示“toast”通知。这样,用户就会意识到对互联网连接的需求,并且可以提供更好的用户体验。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2011-12-31
        • 1970-01-01
        • 1970-01-01
        • 2016-11-01
        • 1970-01-01
        • 2017-02-16
        • 2018-04-28
        • 1970-01-01
        相关资源
        最近更新 更多