我正在尝试构建一个可以运行的Web应用程序。因此,我的用户需要该应用程序在后台运行,以使用window.speechSynthesis.speak跟踪时间,地理位置并发布进度公告。

我需要它在手机进入睡眠状态时正常工作,这是我经常意识到浏览器正在努力防止的问题。

我有以下代码,当我听到哔声时,除非手机解锁并打开浏览器,否则我听不见语音。没有这两个要求,有什么方法可以发表演讲?

function say(data) {
    beep().then(() => {
        window.speechSynthesis.speak(new SpeechSynthesisUtterance(data));
    });
}

const beeep =
    "data:audio/wav;base64,//uQRAAAAWMSLwUIYAAsYkXgoQ.....AAACU=";
function beep() {
    snd.src = beeep;
    return snd.play();
}


尽管我不知道它们是使用语音合成器还是只是播放声音文件,但它们在睡眠时会“说话”。

最佳答案

您不能,您应该通过推送通知发送事件,该通知可以在应用程序处于后台时触发。
Here is a basic example

10-05 18:24