繁体   English   中英

最佳做法-没有网络连接

[英]Best practice - No network connectivity

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

我未来的应用程序在很大程度上依赖于网络,没有它,将与它无关。

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

例如,当我没有连接时,ebay应用程序有时会提取最后保存的数据,而在另一些时间,它只会清除所有内容。 贝宝(Paypal)应用程序将注销我,否则它将崩溃。 新闻应用程序之一将一直说正在加载...

有什么最佳实践吗?

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

谢谢

首先,最简单的事情是: 永远不要自己关闭应用程序,也永远不要崩溃。

如果适合您的情况,则应显示旧数据,只需这样做,然后在屏幕上添加一些有关用户处于脱机状态的通知即可。

如果真的没有任何用途,那么用户可以在线访问,将所有内容灰显或使用类似的技术来完成。

继续尝试在后台重新连接(即,监听网络可用性的变化)并表现适当。

要牢记的一件事:使用移动设备时,通常会出现短暂的断开连接,您希望它们能够正常处理。

看一下ASIHttpRequest ,它具有出色的缓存机制。

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

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

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

正确处理“无网络”情况的方式,完全取决于您的应用程序。

需要牢记的两件事:以编程方式关闭应用程序或无法顺利处理“无可用连接”的情况,都是被Apple审核程序拒绝的原因。

在设计过一个很大程度上依赖于网络可用性的应用程序的经验之后,我想说,最佳实践可以总结如下:

1)使用可达性框架来检测您具有哪种连接; 我链接到的版本比Apple提供的版本更好,因为该版本存在很多错误(有关此内容,请搜索SO);

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

3)始终通过显示警报或更好地显示某种其他图标/消息的方式通知用户没有可用的网络; 最少干扰的显示是最好的,以免打扰用户的工作流程;

4)如果您已经缓存了数据并且这样做是有道理的,请在没有网络连接可用时使用缓存的数据(在这种情况下,这也会使应用“部分可用”);

5)如果对您的应用有意义,请为用户提供一个刷新数据的按钮;

这就是说,这种“最佳实践”的最简单实现是一个应用程序,如果没有可用的连接,则会使用户回到“主屏幕”(丑陋,但这可能是您应用程序中唯一明智的选择)。 完全实现是,例如,rss阅读器将所有新闻缓存起来,即使没有连接也可以使您阅读它们(很显然,无需加载更新的数据)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM