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 中的低功耗模式检测?的主要内容,如果未能解决你的问题,请参考以下文章