...
/**
 * 创建提醒
 */
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;
    });
  }
};