Notification.requestPermission()在Mozilla上抛出错误。

问题描述 投票:0回答:1

我正在尝试获取Mozilla的通知。但它不断地抛出这个错误.

通知权限只能从一个简短的用户生成的事件处理程序中请求。

这是我的代码。同样的代码在Chrome、EDGE和Opera上也能正常工作。

Notification.requestPermission().then(function (status) {
    if (status === 'denied') {
        //
    } else if (status === 'granted') {
        //
    }
});

我发现了一些与此相关的问题,但这些问题对我都没有帮助。

mozilla web-push
1个回答
0
投票

这个消息意味着你的订阅代码必须在用户生成的事件中调用,比如点击。

也许你是想在页面加载时订阅用户,但这在某些浏览器上是不可能的,比如Firefox和Safari,因为这被认为是对用户的一种骚扰。

这也是为什么许多推送服务(如OneSignal、Pushpad等)建议使用双重选择的原因之一:首先,你显示一个用HTML CSS设计的订阅提示或按钮,然后,在点击按钮后,你实际上是在请求权限(你上面的代码)。

© www.soinside.com 2019 - 2024. All rights reserved.