0

许多可达性测试代码似乎包含“通知”概念,因此当网络重新启动时,用户可以得到通知。

  1. 我需要实现“通知”部分吗?每当用户尝试需要网络连接但不可用的东西时提醒用户是否可以接受?(连接恢复时不通知)

  2. 我看到示例代码处理纯网络可用性(如果设备连接到 wifi、3g 等)以及对特定 ip 的可达性。我的应用需要在适当的时候连接到特定的 IP 地址。在这种情况下,只需要在适当的时间无法访问该 ip 就发出警报,还是我需要处理更多的事情?(例如放置不同的消息以提醒用户打开网络并提醒用户我的 ip 不是可达)

谢谢

4

2 回答 2

7

1. 我建议看一下 Andrew Donoho 的 Reachability 类,它是 Apple 发布的示例的扩展:

http://blog.ddg.com/?p=24

这将消除对处理通知的担忧,让您专注于简单地测试 IP 的可达性或某个网络类型是否处于活动状态。

2. 关于对用户的实际通知,我想说这取决于您的应用程序。例如,在我的一个应用程序的绝大多数屏幕上,UIView 会在该视图加载时尝试从 RESTful 服务异步下载数据。我事先没有进行任何可达性测试,我只是尝试拨打电话,如果请求失败,我会在事后通知用户。除非您有特定情况需要知道 IP 是可访问的,否则我认为在一般情况下处理连接尝试的任何错误就足够了。我敢肯定有很多边缘情况,尽管您可能想先测试可达性。

另一方面,我确实使用了我推荐 WiFi 连接的给定屏幕上的可达性。由于该屏幕执行相当数据密集的同步,我警告用户如果他们使用 3G,同步需要更长的时间,而 WiFi 只是执行同步。

于 2011-05-04T14:31:52.627 回答
2
  1. AFAIK,没有要求您在网络可用时弹出通知,或者事实上您实际上在网络不可用时弹出通知。您可以改为启用/禁用与网络相关的按钮(只要用户可以知道这些按钮被禁用的原因),显示一个不显眼的屏幕指示器,或其他任何东西。

    重要的是,当网络不可用时,您不会显示空白屏幕或神秘的错误消息,否则会让用户想知道为什么事情不工作。

  2. 我不知道您区分“网络关闭”和“网络打开但 IP 地址无法访问”的任何要求。

于 2011-05-04T14:28:44.007 回答