ホームページ >ウェブフロントエンド >jsチュートリアル >最新のブラウザでデスクトップ通知を実装するにはどうすればよいですか?

最新のブラウザでデスクトップ通知を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 04:39:29384ブラウズ

How to Implement Desktop Notifications in Modern Browsers?

Chrome デスクトップ通知の例

最新のブラウザには 2 種類の通知が存在します:

  • デスクトップ通知 - 簡単にトリガーでき、ページが開いている限りアクティブになり、数秒後に自動的に消える場合があります。
  • Service Worker 通知 - 少し複雑ですが、バックグラウンドで (ページが閉じられた後でも) 動作し、永続的でアクション ボタンをサポートします。

API 呼び出しは同じパラメータを受け取ります (アクションを除く - デスクトップ通知では使用できません)。これについては MDN で詳しく説明されており、サービス ワーカー向けには Google の Web Fundamentals サイトでも説明されています。

これは、Chrome、Firefox、Opera、Safari の デスクトップ 通知の実例です。セキュリティ上の理由により、Chrome 62 以降、通知 API 権限はクロスオリジン フレームワークから要求されなくなる可能性があるため、StackOverflow のコード スニペットを使用してこれを実証することはできないことに注意してください。この例を Web サイト/アプリケーションの HTML ファイルに保存し、必ず localhost:// または HTTPS を使用する必要があります。

<code class="js">// 在页面加载时请求权限
document.addEventListener('DOMContentLoaded', function() {
 if (!Notification) {
  alert('Desktop notifications not available in your browser. Try Chromium.');
  return;
 }

 if (Notification.permission !== 'granted')
  Notification.requestPermission();
});


function notifyMe() {
 if (Notification.permission !== 'granted')
  Notification.requestPermission();
 else {
  var notification = new Notification('Notification title', {
   icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
   body: 'Hey there! You\'ve been notified!',
  });
  notification.onclick = function() {
   window.open('http://stackoverflow.com/a/13328397/1269037');
  };
 }
}</code>
<code class="html"><button onclick="notifyMe()">Notify me!</button></code>

以上が最新のブラウザでデスクトップ通知を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。