需求:
感知到弱网情况,以及无网络的情况,并给出对应页面提示,提升用户体验
技术实现方案:
一、弱网判断方式:
1、wx.getNetworkType判断,2g、3g即可以认为是弱网的情况,网络强度通过signalStrength判断。弊端很明显,iOS不支持获取移动网络的signalStrength。signalStrength官方对应标准不明确,还有兼容性问题。 同种网络情况下,IOS获取到signalStrength为-100,安卓为-55、-49等
2、wx.onNetworkWeakChange判断,weakNet为true即可以认为是弱网情况。弊端:不能稳定复现
3、4G、5G等情况下使用图片加载法。下载一张1M-2M大小的图片,通过下载时间来判断网络情况。当请求耗时在1000ms以内,则认为网络极好,如果介于1000-1500ms之间,则认为网络好,如果大于1500ms,则认为网络差。如果网络状态不好,则进行几次重试,看看是否有更好的网络状态。同时我们还需要使用wx.onNetworkStatusChange这个api来监听网络状态的变化;该api会在用户网络切换时候触发,一旦触发,我们需要重新执行下载方法来判断当前的网络状态。
4、❌任意接口加载判断。任意接口加载超过5s,即可以认为是网络状况较差。(通用性较差)