【问题标题】:Notification.requestPermission() not requesting permissionNotification.requestPermission() 未请求权限
【发布时间】:2019-08-01 09:07:18
【问题描述】:

浏览器一直放弃请求通知权限,只是决定它是默认的。我如何获得它来请求许可,以便我可以真正接受?

【问题讨论】:

    标签: javascript events permissions notifications firefox-addon


    【解决方案1】:

    这行得通:

    Notification.requestPermission().then(function(permission) { console.log('permiss', permission)});
    

    .then() 内部的函数已经是 requestPermission() 发起的承诺的解析处理程序。

    浏览器会保存您对特定域的决定,并且不会再次请求您的许可。

    要让他们再次询问,您必须让他们忘记您的最后决定。 在 Firefox 中可以这样做:

    此处删除权限,重新加载页面,让浏览器再次询问。

    【讨论】:

    • 感谢您这么快的回复;我仍然没有收到请求。我的控制台上打印的所有内容都是“Webconsole 上下文已更改\n 允许默认值”
    • 哪个浏览器?
    • 另外,能否请您将上述代码直接粘贴到浏览器控制台中进行测试?它对我有用。
    • 这是火狐。我刚试过,我得到:> Promise { : "pending} \n 允许默认值。没有任何通知权限请求:(
    • 我刚试过这个。在摆弄之后,浏览器似乎会记住您的决定并解决您对过去决定的请求。
    【解决方案2】:

    我相信您已经使用 then() 中的函数解决了承诺。我正在通过删除窗口来测试您的示例。它对我有用。

    Notification.requestPermission().then(function(getperm) 
    { 
    
        console.log('Perm granted', getperm) 
    
    });
    

    https://jsfiddle.net/freddyr0/x43j8tf5/

    【讨论】:

    • jsfiddle 在 chrome 和 firefox 中绝对有效(这是用于 firefox 插件)。问题是,我的插件仍然没有发出请求。我摆脱了“窗口”,控制台甚至没有打印“授予许可”。只是“Webconsole 上下文已更改”。感谢您的帮助。
    • 我刚刚尝试在 'console.log('Perm grant', getperm) 之前添加另一个 console.log 语句。这个 console.log 语句甚至没有被打印出来。我想我根本没有进入函数。
    猜你喜欢
    • 1970-01-01
    • 2016-12-14
    • 2015-07-24
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多