iPhone上必须提供有关状态更改的网络可达性通知?

时间:2011-05-04 14:08:30

标签: iphone ios networking reachability

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

  1. 我是否需要实施“通知”部分?是否可以在用户尝试需要网络连接且无法使用的情况下提醒用户? (连接回来时没有通知)

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

  3. 谢谢

2 个答案:

答案 0 :(得分:7)

1。 我建议看一下Andrew Donoho的Reachability类,它是Apple发布的样本的扩展:

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

这将使人们不必担心处理通知,而是让您专注于简单地测试IP的可访问性或某个网络类型是否处于活动状态。

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

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

答案 1 :(得分:2)

  1. AFAIK,无需在网络可用时弹出通知,或者实际上在网络不可用时实际弹出通知。您可以改为启用/禁用与网络相关的按钮(只要用户可以知道禁用按钮的原因),显示不显眼的屏幕指示器等等。

    重要的一点是,当网络不可用时,您不会显示空白屏幕或隐藏的错误消息,或者让用户想知道为什么不能正常工作。

  2. 我不知道您是否要求区分“网络关闭”和“网络连接但无法访问IP地址”。