0
点赞
收藏
分享

微信扫一扫

js 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);

举报

相关推荐

0 条评论