唤醒锁在浏览器中工作,但不能作为 PWA



我有一个使用唤醒锁的Web应用程序(见下文( - 我已经注册了原始试用版并将代码添加到我的索引.html。 - 见 https://lucid-franklin-4016c2.netlify.com/

当我在最新版本的Android Chrome中加载页面时,手机保持唤醒状态,并且我用于此正在运行的应用程序的文本到语音消息工作正常。

我还将其设置为PWA(服务工作者,清单,... -灯塔中都很好(。但是,在"将页面添加到主屏幕"并从那里加载PWA之后,手机确实进入睡眠状态。它继续计算时间并可以在后台播放声音文件,但文本到语音转换已停用。

这是预期行为吗?

我的主要需求是文本到语音转换,而不是让手机保持清醒状态,因为无论如何,地理位置似乎都可以在手机睡眠时起作用。我还能做什么吗?

// The wake lock sentinel.
let wakeLock = null;
// Function that attempts to request a wake lock.
export const requestWakeLock = async cb => {
try {
wakeLock = await navigator.wakeLock.request("screen");
wakeLock.addEventListener("release", () => {
console.log("Wake Lock was released");
});
console.log("Wake Lock is active");
} catch (err) {
console.error(`${err.name}, ${err.message}`);
cb({
tag: "error",
payload: "wakeLock not supported"
});
}
};

Chrome最近在84版本中推广了Wake Lock API的源代码试用版,并且似乎适用于Android PWA上的Chrome。

演示:https://reillyeon.github.io/scraps/wakelock.html

相关内容

最新更新