首页 > 解决方案 > 移动浏览器上的服务工作者 JavaScript 问题

问题描述

这真让我抓狂。我一直在尝试为网站实现推送通知,并且找到了解决方案(Javacript API 通知)。问题是:通知在移动设备上不起作用。

我阅读了有关服务人员的信息,并且一直在使用此代码向用户询问许可和所有内容,但它仍然无法正常工作。我不确定我是否做错了什么。我读到它必须是一个 https 站点,但这似乎不是问题。我也尝试过 push.js 插件plugin.js,但到目前为止没有成功(即使它在他们网站上的那个插件的演示在我的移动浏览器上运行)这是网站 >>> https://park -inside.nl/test/

“设置通知”按钮用于在等待时间低于所选时间时显示通知。因此,要对此进行测试,只需单击“设置通知”,然后选择大于“Wachttijd”列的分钟数并刷新页面。应该会出现通知。它适用于桌面浏览器,但不适用于移动设备。有什么想法或建议吗?我会喜欢并感谢任何帮助。

注意:我在 Android 9 (go) 上使用 Chrome 94

请求用户许可的代码:

Notification.requestPermission(function(result) {
    if (result === 'granted') {
        navigator.serviceWorker.ready.then(function(registration) {
            registration.showNotification('Notification with ServiceWorker');
        });
    }
});

标签: javascriptapimobilenotifications

解决方案


请参阅 Web 通知的浏览器支持表:https ://caniuse.com/notifications 。

它们仅适用于 Android 上的 Chrome,而不适用于现有的 Android 浏览器。

此外,请务必注册一个服务工作者,即使它是一个空的,如下所示:https ://stackoverflow.com/a/31787926/10551293 。

此处提供了通知的演示:https ://serviceworke.rs/push-payload_demo.html 。

Google 还提供了一个分步代码实验室:https ://developers.google.com/codelabs/pwa-training/pwa03--going-offline#0


推荐阅读