React Native 怎么优雅地判断是否是弱网环境?

希望能针对弱网环境,对用户的一些操作以及页面数据的加载做一些提示。比如以下情景:

  1. 用户点击时,弱网提示“网络似乎有点问题,请稍后再试”
  2. 跳转至某个列表页面或者表单页面(需要请求数据的场景),弱网提示“网络似乎有点问题,请稍后再试”

React Native 社区的 @react-native-community/netinfo 无法做到判断或者监听到当前是否为弱网环境。

目前临时方案是通过 Promise.race(iterable) 进行处理:

// 简单例子
Promise.race([
  executor(),//执行请求
  timeoutHandler(3000),//3s 后进行超时处理,只要超时就认为是弱网
])

这个方案并不友好,只有进行了操作(请求)后才知道是否要做弱网处理,并且判断依据仅靠3s内是否有响应,显得过于简单粗暴,为什么是3s也只是开发经验而已。

希望能有方案,能实时监听到当前网络的信号强弱,类似native获取dbm/asu值

哪位大佬研究过吗?

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题