开发者社区> 问答> 正文

爱情不掉线:小程序获取设备的网络状态

爱情不掉线:小程序获取设备的网络状态

展开
收起
社区秘书 2020-04-27 15:05:36 1082 0
1 条回答
写回答
取消 提交回答
  • 地球不爆炸,爱情不掉线。宇宙不重启,我们不分离。 不想要和手机里的女朋友掉线的你,如何获取到她的手机网络状态呢? 大家都知道,手机连接到互联网有几种方式:WiFi、2G、3G、4G,包括很快到来 的 5G。每种方式的上传速度和下载速度差异很大,它们的计费方式的差异也导致 用户在使用互联网服务的时候有不同的使用习惯。 WiFi 相对于其他几种网络连接方式,其速度会更快。WiFi 一般情况下,都是免 费供用户使用,而移动数据网络是需要根据使用流量进行计费的。 考虑这样一个场景,小程序需要下载一些文档,然后通过小程序的能力去预览这个 文档,这些文档可能文件体积比较大,对于某些用户来说,他们并不想耗费太多的 数据流量去预览文档。这种情况下,可以通过小程序提供的获取网络状态 API my.getNetworkType,做一些更友好的体验提示。 入参 Object 类型,属性如下: 78 属性 类型 必填 描述 success Function 否 调用成功的回调函数。 fail Function 否 调用失败的回调函数。 complete Function 否 调用结束的回调函数(调用成 功、失败都会执行)。 success 回调函数 入参为 Object 类型,属性如下: 属性 类型 描述 networkAvailable Boolean 网络是否可用。 networkType String 网络类型值 UNKNOWN / NOTREACHABLE / WIFI / 3G / 2G / 4G / WWAN 示例代码 // API-DEMO page/API/get-network-type/get-network-type.json { "defaultTitle": "获取手机网络状态" }

    网络状态 未获取 点击按钮可获取网络状态 {{networkType}} 79 获取手机网络状态 清空 // API-DEMO page/API/get-network-type/get-network-type.js Page({ data: { hasNetworkType: false }, onLoad() { this.onChange = this.onChange.bind(this); // my.onNetworkChange(this.onChange); }, onChange(res){ console.log('onNetworkChange', res); this.setData({ hasNetworkType: true, networkType: res.networkType }); }, onUnload() { // my.offNetworkChange(this.onChange); }, getNetworkType() { my.getNetworkType({ success: (res) => { this.setData({ hasNetworkType: true, networkType: res.networkType }) } }) 80 }, clear() { this.setData({ hasNetworkType: false, networkType: '' }) }, }); /* API-DEMO page/API/get-network-type/get-network-type.acss */ .page-body-info { height: 200rpx; } .page-body-text-network-type { font-size: 80rpx; font-family: Helvetica; }

    内容来源:https://developer.aliyun.com/article/756818?spm=a2c6h.12873581.0.dArticle756818.26162b70Su1GZy&groupCode=tech_library

    2020-04-27 15:06:29
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Session:更加安全、可靠的数据中心网络产品更新 立即下载
Session:极简易用的全球化网络产品更新 立即下载
Session:弹性、高可用、可观测的应用交付网络产品更新 立即下载