【发布时间】:2015-10-21 00:12:30
【问题描述】:
我正在寻找有关处理 iPhone 应用 (iOS9/Swift2/Xcode7) 网络连接问题的最佳方法的建议,以便提供最佳用户体验,因为我们知道移动数据网络不可靠。我有我的编码选项,但我想知道什么对其他有经验的技术人员来说效果很好。那里有很多信息,但我找不到特定于连接失败时发生的策略的信息。
这是我想实施的处理失败连接的基本策略(连同问题):
- App 向 api.myserver.com 发送请求,请求失败
- 等待 X 秒,然后再次尝试向 api.myserver.com 发出请求(您建议尝试多少次以及以什么时间间隔?)
- 尝试 ping 其他服务器(即 google.com),看看我们是否可以访问 api.myserver.com 以外的资源
- 如果我们可以成功 ping google.com,那么我们就知道我们的互联网正在工作,所以我们再次尝试 ping api.myserver.com
- 如果最后一次 ping 失败,我们会提醒用户由于某种原因我们无法通信并稍后重试
我正在使用 Apple 技术人员推荐的 this SO answer 中概述的理念,这通常意味着您始终首先检查与服务器的连接,使用可达性作为单独检查以确保手机硬件可用。
在此过程中的任何时候,如果 Reachability 为 false,我们会将请求放入队列中,以便在电话硬件连接恢复时再次尝试。
我想我已经掌握了所涉及的代码,但正在寻找诸如“这对我们的应用程序有效,并在连接问题期间提供良好的用户体验......并且已获准在 Apple 应用程序中使用”之类的见解店铺...”。我了解在失败的情况下尝试/重试连接并提醒用户的概念(目前我的代码已经成功地做到了这一点),但仍然没有确定一个好的策略来使用我应该尝试重新连接多少次以及在什么情况下间隔?
【问题讨论】:
标签: ios swift nsurlconnection alamofire reachability