最佳实践 - 无网络连接

时间:2011-05-16 15:23:44

标签: iphone networking

您认为什么是处理无网络连接的最佳方式?

我的未来应用很大程度上依赖于网络,如果没有它,就没有任何关系。

我看到应用程序以不同的方式处理这种情况。

当我没有连接时,ebay应用程序例如有时会拉出最后保存的数据,但有些时候它只是清除所有内容。 Paypal应用程序将登出我或它只会崩溃。其中一个新闻应用程序将继续说加载......

那里有最好的实践吗?

应用程序是否应继续尝试并显示加载消息,添加刷新按钮或仅自动关闭应用程序?

谢谢

4 个答案:

答案 0 :(得分:0)

最简单的事情:你应该从不自己关闭应用程序,你永远不应该崩溃。

如果在您的情况下显示旧数据是恰当的,只需这样做并在屏幕上添加一些用户离线的通知。

如果在没有在线访问的情况下确实没有任何用处可以做什么,请将所有内容变灰或使用类似的技术。

继续尝试在后台重新连接(即收听网络可用性更改)并采取恰当的行为。

要记住的一件事:对于移动设备,您通常需要进行短暂的断开连接。

答案 1 :(得分:0)

看看ASIHttpRequest,它有一个很好的缓存机制。

答案 2 :(得分:0)

如果您的应用程序中没有网络连接,那么最好说“无网络连接”类型的消息,而不是显示加载/刷新等。

或者将数据存储在数据库中也是一个不错的选择,至少用户可以在离线模式下使用数据,并且您的应用程序也将在离线模式下使用。 (正如你提到的那样我的未来应用程序在很大程度上依赖于网络而没有网络将与它无关。)。

确保您的应用程序在网络不可用时不会崩溃。

答案 3 :(得分:0)

“无网络”条件的正确处理完全取决于您的申请。

要记住两件事:以编程方式关闭应用程序或不顺利处理“无连接可用”案例都是Apple审核流程中拒绝的原因。

在设计一个同样严重依赖于网络可用性的应用程序方面有经验,我想说最佳实践可归纳如下:

1)使用Reachability框架来检测您拥有的连接类型;我链接到的版本比Apple提供的版本更受欢迎,这是有缺陷的(搜索S.O以获取更多信息);

2)每当您需要来自网络的数据时,请检查连接是否已恢复(即,不只是一次开始);

3)通过显示警报或更好地显示其他类型的图标/消息,始终通知用户没有可用的网络。最不具侵入性的显示效果最好,所以不要破坏用户的工作流程;

4)如果您有缓存数据并且这是有意义的,那么在没有可用的网络连接时使用缓存数据(这将使应用程序在这种情况下“部分可用”);

5)为用户提供刷新数据的按钮,如果这对您的应用有意义的话

这就是说,这个“最佳实践”最简单的实现是一个应用程序,如果没有可用的连接,让用户回到“主屏幕”(丑陋,但它可能是你的应用程序中唯一明智的事情) )。例如,完整的实现是一个rss阅读器缓存所有新闻并允许你读取它们,即使没有连接(显然没有加载更新的数据)。