iOS11 JavaScript 中的低功耗模式检测?

Posted

技术标签:

【中文标题】iOS11 JavaScript 中的低功耗模式检测?【英文标题】:Low power mode detection in JavaScript for iOS11? 【发布时间】:2017-10-10 15:09:01 【问题描述】:

是否有用于检测 ios 11 Safari 低功耗模式的 javascript API? 我还没有找到有关该主题的任何信息。

【问题讨论】:

【参考方案1】:

解决方法是:

将视频(隐藏)放置在自动播放“开启”的网页中, 然后检测该视频的“暂停”事件。 每当调用它时,“电源模式已开启”。

这是脚本:

const videoElement = document.getElementById('ID_of_video');
    videoElement.addEventListener('suspend', () => 
        // suspend invoked
        // show play button
        // iphone is in low power mode
    );

    videoElement.addEventListener('play', () => 
        // video is played
        // remove play button UI
        // iphone is not in low power mode
    );

你也可以在这里阅读解释:Playing video when low power mode is on

【讨论】:

不幸的是,这对我不起作用。即使没有开启低功耗模式,也会触发挂起事件。你是怎么让它工作的。虽然视频自动播放,但我也没有收到播放事件。 我的意思是它是在开启和关闭低功耗模式时触发的。 @AdityaPS 你能分享网址或你的sn-p吗? 暂停总是为我发出 视频下载完成后总会触发暂停事件。这就是你所看到的。【参考方案2】:

iOS 上的 Safari不支持访问低功耗模式设置的状态(甚至不支持accessing the battery level)。

【讨论】:

是的,我想了很多。只是想确定一下。此外,电池状态 API 似乎已经过时(除非这是 MDN 的错误):developer.mozilla.org/en-US/docs/Web/API/Battery_Status_API【参考方案3】:

就像“挂起”事件建议一样,使用autoplay loop muted attrs 上的隐藏视频,然后在视频挂载时收听播放事件,如下所示:

testVideo
    .play()
    .then(() => )
     .catch((error) => 
        //Do something like adding controls to allow user to manually play
    );
);

这是截至 2022 年 3 月的解决方案,因为浏览器不会触发暂停事件以取消自动播放。

【讨论】:

这似乎正确触发(答案没有,它总是触发),但最好能进一步解释这里发生的事情。谢谢

以上是关于iOS11 JavaScript 中的低功耗模式检测?的主要内容,如果未能解决你的问题,请参考以下文章

STM32低功耗总结

STM32F0系列——停机模式(低功耗)

如何实现嵌入式处理器的低功耗?其工作原理是啥?

STM的低功耗系列

mega328p是啥单片机用的啥编程软件

Android 6.0 上的低功耗蓝牙 startScan 找不到设备