javascript基础从小白到高手系列六百九十六:Battery Status API

当然,到底怎么才算联网取决于浏览器与系统实现。有些浏览器可能会认为只要连接到局域网就算 “在线”,而不管是否真正接入了互联网。
navigator 对象还暴露了 NetworkInformation API,可以通过 navigator.connection 属性使用。 这个 API 提供了一些只读属性,并为连接属性变化事件处理程序定义了一个事件对象。
以下是 NetworkInformation API 暴露的属性。
 downlink:整数,表示当前设备的带宽(以 Mbit/s 为单位),舍入到最接近的 25kbit/s。这个值
可能会根据历史网络吞吐量计算,也可能根据连接技术的能力来计算。
 downlinkMax:整数,表示当前设备最大的下行带宽(以 Mbit/s 为单位),根据网络的第一跳来
确定。因为第一跳不一定反映端到端的网络速度,所以这个值只能用作粗略的上限值。
 effectiveType:字符串枚举值,表示连接速度和质量。这些值对应不同的蜂窝数据网络连接
技术,但也用于分类无线网络。这个值有以下 4 种可能。  slow-2g
 往返时间 > 2000ms
 下行带宽 < 50kbit/s 2g
 2000ms > 往返时间 ≥ 1400ms
 70kbit/s > 下行带宽 ≥ 50kbit/s 3g
 1400ms > 往返时间 ≥ 270ms
 700kbit/s > 下行带宽 ≥ 70kbit/s 4g
 270ms > 往返时间 ≥ 0ms
 下行带宽 ≥ 700kbit/s
rtt:毫秒,表示当前网络实际的往返时间,舍入为最接近的 25 毫秒。这个值可能根据历史网
络吞吐量计算,也可能根据连接技术的能力来计算。
 type:字符串枚举值,表示网络连接技术。这个值可能为下列值之一。
 bluetooth:蓝牙。
 cellular:蜂窝。
 ethernet:以太网。
 none:无网络连接。相当于 navigator.onLine === false。

7  dischargingTime:整数,表示预计离电量耗尽还有多少秒。如果设备没有电池,则返回 Infinity。
 level:浮点数,表示电量百分比。电量完全耗尽返回 0.0,电池充满返回 1.0。如果设备没有电
池,则返回 1.0。
这个 API 还提供了 4 个事件属性,可用于设置在相应的电池事件发生时调用的回调函数。可以通过
 mixed:多种网络混合。  other:其他。
 unknown:不确定。
 wifi:Wi-Fi。
 wimax:WiMAX。
 saveData:布尔值,表示用户设备是否启用了“节流”(reduced data)模式。
 onchange:事件处理程序,会在任何连接状态变化时激发一个 change 事件。可以通过 navigator.
connection.addEventListener(‘change’,changeHandler)或 navigator.connection. onchange = changeHandler 等方式使用。

3. Battery Status API

浏览器可以访问设备电池及充电状态的信息。navigator.getBattery()方法会返回一个期约实 例,解决为一个 BatteryManager 对象。

navigator.getBattery().then((b) => console.log(b));
// BatteryManager { ... }

BatteryManager 包含 4 个只读属性,提供了设备电池的相关信息。
 charging:布尔值,表示设备当前是否正接入电源充电。如果设备没有电池,则返回 true。  chargingTime:整数,表示预计离电池充满还有多少秒。如果电池已充满或设备没有电池,则
给 BatteryManager 添加事件监听器,也可以通过给事件属性赋值来使用这些属性。  onchargingchange
 onchargingtimechange
 ondischargingtimechange
 onlevelchange

navigator.getBattery().then((battery) => {
// 添加充电状态变化时的处理程序
const chargingChangeHandler = () => console.log('chargingchange'); battery.onchargingchange = chargingChangeHandler;
// 或
battery.addEventListener('chargingchange', chargingChangeHandler);
// 添加充电时间变化时的处理程序
const chargingTimeChangeHandler = () => console.log('chargingtimechange'); battery.onchargingtimechange = chargingTimeChangeHandler;
// 或
battery.addEventListener('chargingtimechange', chargingTimeChangeHandler);
     // 添加放电时间变化时的处理程序 13 const dischargingTimeChangeHandler = () => console.log('dischargingtimechange'); battery.ondischargingtimechange = dischargingTimeChangeHandler;
// 或
 battery.addEventListener('dischargingtimechange', dischargingTimeChangeHandler);
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值