5

有没有办法让用户选择禁用 webkitNotifications?如果我requestPermission()第二次打电话,它不会提示用户。

4

3 回答 3

0

我只请求权限一次,然后让用户配置他是否想从配置面板接收通知。

您可以将此选项存储在服务器或客户端的数据库中,使用localStorage.

显示通知

if (notificationsEnabled) {
    var notification = new window.Notification("Hello");
}

加载时恢复设置

$(function () {
    notificationsEnabled = JSON.parse(localStorage.getItem('notificationsEnabled') || false);
    $('#notificationsEnabled').prop('checked', notificationsEnabled);

    if (!window.Notification) {
        $('#notificationsEnabled').prop('disabled', true);
    }
});

设置

<label>
    <input id="notificationsEnabled" name="notificationsEnabled" type="checkbox">
    Enable notifications
</label>

处理复选框上的 onchange 事件

$('#notificationsEnabled').on('change', function() {
    notificationsEnabled = !notificationsEnabled;
    localStorage.setItem('notificationsEnabled', notificationsEnabled);
    if (notificationsEnabled && window.Notification.permission === 'default') {
        window.Notification.requestPermission();
    }
});
于 2015-06-08T14:47:10.880 回答
-1

您可以尝试在代码中预设用户对通知的偏好:

http://developer.apple.com/library/safari/#documentation/AppleApplications/Conceptual/SafariJSProgTopics/Articles/SendingNotifications.html

于 2013-02-14T17:46:18.393 回答
-1

如果你在 Chrome 中试试这个:

  1. 调出菜单(隐藏在地址栏的右侧)
  2. 点击“设置
  3. 点击“显示高级设置...
  4. 在“隐私”下单击“内容设置
  5. 在“通知”下单击“管理例外

您可以在那里重置通知。

于 2013-05-02T08:41:49.513 回答