目次
Webアプリケーションへのユーザーの参加の改善:Webプッシュ通知の詳細な説明
ホームページ テクノロジー周辺機器 IT業界 Webアプリケーションのプッシュ通知を構築する方法

Webアプリケーションのプッシュ通知を構築する方法

Feb 16, 2025 am 10:37 AM

Webアプリケーションへのユーザーの参加の改善:Webプッシュ通知の詳細な説明

この記事では、ネイティブアプリケーションと同様の通知関数を追加することにより、既存のWebアプリケーションのユーザーエクスペリエンスを改善する方法について説明します。 Webプッシュ通知の概念を詳細に説明し、現在の仕様とブラウザーのサポートをカバーする既存のWebアプリケーションにこの機能を統合する方法を徐々に示します。 この記事はもともとSenchaで公開されました。 SitePointをサポートしてくれたパートナーに感謝します。

コアポイント:

  • 基本を理解する:Webプッシュ通知により、Webアプリケーションは、アプリケーションが非アクティブであっても、ユーザーデバイスにメッセージを直接送信できます。
  • サービスワーカーの登録:サービスワーカーはプッシュメッセージの処理を担当し、ページがロードされたときに登録し、適切なブラウザサポートチェックを実施する必要があります。
  • ユーザーのサブスクリプションプロセス:プッシュ通知の受信の重要な手順には、ユーザーの同意の取得、ブラウザーを介したプッシュサブスクリプションの生成、このデータの送信が含まれます。
  • プッシュメッセージの送信:プッシュメッセージは暗号化され、http postリクエストを介して送信する必要があり、TTLや緊急性などのパラメーターを使用して配信の詳細を管理します。
  • メッセージとユーザーの相互作用の処理:サービスワーカーは、受信メッセージを処理し、通知のクリックやクローズなどのユーザーインタラクションを管理します。
  • unsubscriptionおよびsubscriptionの有効期限:ユーザーがサブスクリプションを解除し、有効期限や更新などのサブスクリプションライフサイクルイベントを処理する方法を提供します。

Web Push通知プロトコル

Webプッシュ通知プロトコルは比較的新しいものです。 Webアプリケーションにネイティブアプリケーションのような機能を提供し、Webアプリケーションがアクティブでないか、ブラウザにロードされていなくても、いつでもサーバーからプッシュメッセージを受信できるようにします。これにより、いつでもユーザーと対話することができ、アプリを使用していなくてもアプリに戻るように促します。

How to Build Push Notifications for Web Applications Webプッシュ通知の商業的価値は明らかです。ユーザーのエンゲージメントを増加させる可能性があり、アプリケーションの全体的な値を増やすことができます。各プラットフォームのネイティブアプリケーションを開発するのではなく、すべてのプラットフォームの単一のWebアプリケーションの開発に近づいています。

WebプッシュとWebSocketsの比較

技術的な詳細に入る前に、まずWebプッシュとWebSocketsの違いを理解しましょう。まず、いくつかの一般的なものがあります。WebプッシュとWebSocketsは、Webアプリケーションとアプリケーションサーバー間のリアルタイム通信を可能にし、アプリケーションサーバーからWebアプリケーションにリアルタイムデータと更新を送信するように設計されています。

次の違いは次のとおりです

  • websocketsWebページが読み込まれてアクティブである場合にのみ使用します。 Webプッシュ通知は、アプリがアクティブ、非アクティブ、またはアンロードされたとき、ブラウザがアクティブでない場合、または閉じていない場合を含め、いつでも使用できます。
  • Webプッシュを使用して送信されたデータは暗号化されている必要があり、各メッセージのサイズは限られています(4kb以下)。送信されるメッセージの数にも制限があります(正確な制限値はブラウザに依存します)。一部のブラウザ(Chromeなど)は、メッセージを受信するたびにユーザーに通知を表示する必要がある場合があります。 WebSocketsを使用する場合、これらの制限はありません。任意のサイズの暗号化されていないメッセージを送信して、必要に応じてそれらを処理できます。
  • 一般的なルールは次のとおりです。ユーザーがアプリケーションと対話する場合、Webアプリケーションに通常のデータ更新を使用して、ユーザーが使用しているかどうかに関係なく、すぐに受信する必要がある重要な緊急メッセージを送信します。当時のアプリケーション。

技術的な概念

このテクノロジーの技術的な詳細を見てみましょう。特別なルール、参加者を備えたゲームを使用し、これらの詳細を説明します。最初に「Web Push通知」と呼ばれるこのゲームの参加者について説明します:

  • webアプリケーション
  • サービスワーカー
  • ブラウザ
  • Application Server
  • プッシュサーバー

Push Serverは、ブラウザメーカーによって実装されたサービスです。アプリケーションサーバーからブラウザにメッセージを配信する責任があります。

ゲームデモWebプッシュ通知を使用

ゲームを使用して、アプリにWebプッシュ通知を追加する方法を示します。このゲームのルールは、World Wide Web Allianceとインターネットエンジニアリングタスクフォースによって提供される複数の仕様によって定義されます。

    ブラウザとそれに関連するWebアプリケーションまたはサービスワーカーとの間の通信は、プッシュAPI仕様で説明されています。
  • さまざまな種類の通知と通知処理の表示については、通知API仕様で説明されています。
  • アプリケーションサーバーとプッシュサーバー間の通信は、Web Pushプロトコル仕様で定義されています。
  • また、プッシュメッセージの暗号化とアプリケーションサーバー認証を記述するいくつかの追加の仕様があり、アプリケーションサーバーがユーザーにメッセージを送信できることを証明できるようにします。

How to Build Push Notifications for Web Applications ゲームラウンド

ゲームを4ラウンドに分割し、各ラウンドの概念と目標を説明します。次に、アプリに各ターンを実装する方法を示します。

ラウンド1:サービスワーカー登録Webプッシュ通知は、サービスワーカーがプッシュメッセージを処理する必要があるため、最初のラウンドはサービスワーカーを登録することです。あなたのWebアプリケーションとブラウザのみがこのラウンドに参加します。このラウンドは、ページが読み込まれているときに発生します。

Webアプリケーションは、サービスワーカーが正常に登録されている場合、サービスワーカーを登録するリクエストを送信します。

How to Build Push Notifications for Web Applications

このラウンドを実装するには、次のコードをWebアプリケーションに追加する必要があります。

まず、ブラウザがサービスワーカーをサポートしているかどうかを確認する必要があります。次に、ブラウザがWebプッシュ通知をサポートしているかどうかを確認する必要があります。ブラウザのサポートが増加すると、これら2つのチェックを追加することは常に良い考えです。
if ('serviceWorker' in navigator) {
  if ('PushManager' in window) {
    navigator.serviceWorker.register('ServiceWorker.js').then(function(registration) {
      // 状态初始化
    }).catch(function() {
      // 错误处理
    });
  } else {
    // 错误处理
  }
} else {
  // 错误处理
}
ログイン後にコピー

両方がサポートされている場合、サービスワーカーに登録します。これを行うには、navigator.serviceworker.register()メソッドを呼び出し、サービスワーカーファイルのパスをパラメーターとして渡します。このステップの後、ブラウザはファイルをダウンロードし、サービスワーカー環境で実行します。サービスワーカーファイルは標準のJavaScriptファイルですが、ブラウザはプッシュを含むサービスワーカーAPIに「アクセス」します。

すべてがうまくいかずエラーがない場合、Register()によって返される約束は解析されます。何らかのタイプのエラーが発生した場合、約束は拒否されます。この状況と、ブラウザがサービスワーカーをサポートしない状況に対処する必要があります。登録()の場合、次のターンで使用されるサービスワーカーレジストレーションオブジェクトを返します。

(後続のラウンドの指示は、コードの例、写真、説明など、上記の構造に類似した構造に従い、情報の整合性と読みやすさを維持するために元のテキストを書き直して磨きます。スペースの制限により、ここですべてのラウンドの詳細な説明は拡張されていません

概要

Webプッシュ通知テクノロジーは、広く使用できるようになりました。緊急かつ関連する通知を提供することにより、ユーザーとより効果的にコミュニケーションを取り、ユーザーを関与させるのに役立ち、一般的にWebアプリケーションを改善します。 アプリで使用してみてください。 Sencha CMD 6.5は、次のプログレッシブWebアプリケーション機能をサポートしています。ホーム画面バナーに追加し、サービスワーカーのキャッシュを使用します。詳細については、Sencha CMDドキュメントを読むか、Sencha Ext JSの無料トライアルをダウンロードしてください。SenchaCMDを含む115を超えるコンポーネントとツールにアクセスできます。

(FAQSセクションでは、同様の書き換えと研磨も必要であり、ここでは拡張されません。)

以上がWebアプリケーションのプッシュ通知を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CNCF ARM64パイロット:インパクトと洞察 CNCF ARM64パイロット:インパクトと洞察 Apr 15, 2025 am 08:27 AM

このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン Apr 18, 2025 am 08:28 AM

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

2025年に購読する上位21の開発者ニュースレター 2025年に購読する上位21の開発者ニュースレター Apr 24, 2025 am 08:28 AM

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください

See all articles