DEMOs

导航页

...

/**
 * 创建提醒
 */
function sendNotification() {
  const opts = {
    tag: 'First',
    lang: 'en-US',
    dir: 'ltr',
    body: 'Hello World',
    data: 'This is data',
    icon: 'favicon.ico',
    silent: false,
  };
  const notify = new Notification('Web Notifications API', opts);
  setTimeout(notify.close.bind(notify), 5000);

  return notify;
}

window.onload = () => {
  const info = document.querySelector('.info');
  const data = document.querySelector('.data');

  if (Notification.permision === 'granted') {
    const notify = sendNotification();

    info.innerHTML = 'Permission Granted';
    data.innerHTML = notify.data;
  } else if (Notification.permission === 'denied') {
    info.innerHTML = 'Permission Denied';
  } else {
    Notification.requestPermission().then((result) => {
      data.innerHTML = '';

      if (result === 'denied') {
        info.innerHTML = 'Permission Denied';
        return;
      }

      if (result === 'default') {
        info.innerHTML = 'Permission Dismissed';
        return;
      }

      const notify = sendNotification();

      info.innerHTML = 'Permission Granted';
      data.innerHTML = notify.data;
    });
  }
};