国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド CSSチュートリアル スケジュールされたプッシュ通知を作成します

スケジュールされたプッシュ通知を作成します

Apr 08, 2025 am 09:14 AM

スケジュールされたプッシュ通知を作成します

時(shí)限プッシュ通知:Webアプリケーションの新機(jī)能

「タイミング」が重要です - それはかなり新しい機(jī)能です!プッシュ通知がスケジュールされている場(chǎng)合(たとえば、「投薬時(shí)間が長(zhǎng)い」または「3時(shí)間で搭乗する」)、オフラインであっても通知をユーザーに表示できます。これにより、通知をプッシュすることで、過(guò)去にユーザーがオンラインになる必要があるため、制限が向上します。

それでは、時(shí)限通知はどのように機(jī)能しますか? 4つの重要な部分に焦點(diǎn)を當(dāng)てます。

  • サービスワーカースレッドを登録します
  • タイムプッシュ通知を追加および削除します
  • アクションボタンでプッシュ通知を強(qiáng)化します
  • サービスワーカースレッドのプッシュ通知を処理します

背景知識(shí)

プッシュ通知は、重要なイベントが発生しており、(Web)アプリケーションを再度開く必要があることをWebサイトユーザーに通知する素晴らしい方法です。通知API(プッシュAPIとHTTPネットワークプッシュプロトコルを組み合わせた)を使用すると、ネットワークはサーバーからアプリケーションにプッシュ通知を送信してデバイスに表示する簡(jiǎn)単な方法になります。

この種の進(jìn)化を見たことがあるかもしれません。たとえば、Webサイトからの通知を受け入れるための何らかのプロンプトが表示される頻度はどれくらいですか。ブラウザベンダーはすでにこの不快感を減らすための解決策を見つけるのに苦労していますが(FirefoxとChromeの両方が計(jì)畫を概説しています)、Chrome 80は新しい通知トリガーAPIのソースコードトライアルを開始したところです。ただし、現(xiàn)在、時(shí)間ベースのトリガーは、私たちが持っている唯一のサポートされているイベントです。ただし、ジオロケーションベースのトリガーなど、他のイベントはすでに計(jì)畫中です。

JavaScriptのイベントのスケジューリングは非常に簡(jiǎn)単ですが、問(wèn)題があります。プッシュ通知シナリオでは、通知を表示する正確な瞬間にアプリケーションが実行されているかどうかを判斷することはできません。これは、アプリケーションレイヤーでスケジュールすることができないことを意味します。代わりに、サービスワーカーのスレッドレベルで動(dòng)作する必要があります。これは、新しいAPIが登場(chǎng)する場(chǎng)所です。

通知トリガーAPIは、早期フィードバックフェーズにあります。 Chromeで#Enabable-Experimental-Web-Platform-Featuresフラグを有効にする必要があります。または、ソースコードトライアルのアプリケーションを登録する必要があります。

さらに、サービスワーカースレッドAPIには、HTTPSを介して安全な接続が必要です。したがって、マシンで試してみると、HTTPSを介して提供されることを確認(rèn)する必要があります。

設(shè)定

非常に基本的なセットアップを作成しました。 Application.jsファイル、index.htmlファイル、およびサービスworker.jsファイル、およびいくつかの畫像リソースがあります。

 <code>/project-folder ├── index.html ├── application.js ├── service-worker.js └── assets ├─ badge.png └── icon.png</code>

GitHubで基本的な通知トリガーAPIデモンストレーションの完全な例を見つけることができます。

サービスワーカースレッドを登録します

まず、サービスワーカースレッドを登録する必要があります。現(xiàn)在、登録の成功のみを記録しています。

 // service-worker.js
//インストールイベントself.addeventlistener( 'install'、event => console.log( 'serviceworker instald'));
 if( 'serviceworker' in Navigator){
    navigator.serviceworker.register( '/service-worker.js');
}

プッシュ通知を設(shè)定します

アプリケーションでは、通知を表示するためにユーザー許可を要求する必要があります。そこから、サービスワーカーのスレッド登録を取得し、その範(fàn)囲の新しい通知を登録します。これまでのところ、新しいものは何もありません。

クールな部分は、新しいShowTriggerプロパティです。これにより、通知を表示する條件を定義できます?,F(xiàn)在、タイムスタンプを受け入れる新しいタイムスタンプトリガーを追加したいと考えています。そして、すべてがデバイスで直接起こるので、それもオフラインで動(dòng)作します。

 // application.js
document.queryselector( '#notification-button')。onclick = async()=> {
  const reg = await navigator.serviceworker.getRegistration();
  notification.RequestPermission()。then(permission => {
    if(許可!== '付與'){
      アラート(「プッシュ通知を許可する必要があります」);
    } それ以外 {
      const timestamp = new date()。getTime()5 * 1000; //ここで5000ミリ秒のreg.shownotificationを追加します(
        「デモプッシュ通知」、
        {
          タグ:タイムスタンプ、//一意のID
          ボディ: 'Hello、world'、//プッシュ通知のコンテンツショートリガー:新しいタイムスタンプトリガー(タイムスタンプ)、//プッシュ通知の時(shí)間を設(shè)定します:{{{
            url:window.location.href、//現(xiàn)在のURLを通知に渡す}、
          バッジ: './assets/badge.png'、
          アイコン: './assets/icon.png'、
        }
      );
    }
  });
};

通知の処理

これで、指定されたタイムスタンプに通知を表示する必要があります。しかし、今ではそれと対話する方法が必要です。そこで、サービスワーカースレッドNotificationClickとNotificationCloseイベントが必要です。

どちらのイベントも関連する相互作用を聴き、両方ともサービスワーカースレッドの最大限の可能性を使用できます。たとえば、新しいウィンドウを開くことができます。

 // service-worker.js
self.addeventlistener( 'notificationclick'、event => {
  event.waituntil(self.clients.openwindow( '/'));
});

これは非常に簡(jiǎn)単な例です。しかし、サービスワーカースレッドの機(jī)能により、さらに多くのことができます。必要なウィンドウが既に開いていて、新しいウィンドウが開いていない場(chǎng)合にのみ開くかどうかを確認(rèn)しましょう。

 // service-worker.js
self.addeventlistener( 'notificationclick'、event => {
  event.waituntil(self.clients.matchall()。then(clients => {
    if(clients.length){//少なくとも1つのタブにクライアント[0] .focus()が開いているかどうかを確認(rèn)します。
    } それ以外 {
      self.clients.openwindow( '/');
    }
  }));
});

通知操作

ユーザーとのやり取りを促進(jìn)するもう1つの素晴らしい方法は、通知に事前定義されたアクションを追加することです。たとえば、通知を閉鎖するか、アプリを開くかを選択できるようになります。

 // application.js
reg.shownotification(
  「デモプッシュ通知」、
  {
    タグ:タイムスタンプ、//一意のID
    ボディ: 'Hello、world'、//プッシュ通知のコンテンツショートリガー:新しいタイムスタンプトリガー(タイムスタンプ)、//プッシュ通知の時(shí)間を設(shè)定します:{{{
      url:window.location.href、//現(xiàn)在のURLを通知に渡す}、
    バッジ: './assets/badge.png'、
    アイコン: './assets/icon.png'、
    アクション:[
      {
        アクション:「オープン」、
        タイトル:「オープンアプリ」
      }、
      {
        アクション:「クローズ」、
        タイトル:「閉じる通知」、
      }
    ]
  }
);

これで、これらの通知をサービスワーカースレッドで使用します。

 // service-worker.js
self.addeventlistener( 'notificationclick'、event => {
  if(event.action === 'close'){
    event.notification.close();
  } それ以外 {
    self.clients.openwindow( '/');
  }
});

プッシュ通知をキャンセルします

保留中の通知もキャンセルできます。この場(chǎng)合、サービスワーカースレッドからすべての保留中の通知を取得し、デバイスに送信する前にそれらを閉じる必要があります。

 // application.js
document.queryselector( '#notification-cancel')。onclick = async()=> {
  const reg = await navigator.serviceworker.getRegistration();
  const通知= await reg.getNotifications({
    includiggered:true
  });
  notifications.foreach(notification => notification.close());
  alert( `$ {notifications.length}通知はCANCELLED`);
};

コミュニケーション

最後のステップは、サービスワーカースレッドクライアントのポストメッサージメソッドを使用して、アプリケーションとサービスワーカースレッド間の通信をセットアップすることです。すでにアクティブ化されたタブプッシュ通知クリックイベントが発生したことを通知したいとします。

 // service-worker.js
self.addeventlistener( 'notificationclick'、event => {
  event.waituntil(self.clients.matchall()。then(clients => {
    if(clients.length){//少なくとも1つのタブにクライアント[0] .focus()が開いているかどうかを確認(rèn)します。
      クライアント[0] .postmessage( '[通知]をクリックしてください!');
    } それ以外 {
      self.clients.openwindow( '/');
    }
  }));
});
 // application.js
navigator.serviceworker.addeventlistener( 'message'、event => console.log(event.data));

要約します

通知APIは、Webアプリケーションのモバイルエクスペリエンスを強(qiáng)化する非常に強(qiáng)力な機(jī)能です。通知トリガーAPIの出現(xiàn)により、非常に重要な改善を受けました。 APIはまだ開発中ですので、今はそれを試して開発者にフィードバックを與えるのに最適な時(shí)期です。

VueまたはReactを使用している場(chǎng)合は、自分のプログレッシブWebアプリケーションデモをチェックすることをお?jiǎng)幛幛筏蓼埂R韵陇耸兢工瑜Δ?、VUEとReactの通知トリガーAPIを使用した文書化された例が含まれています。

以上がスケジュールされたプッシュ通知を作成しますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ロードスピナーとアニメーションを作成するためのCSSチュートリアル ロードスピナーとアニメーションを作成するためのCSSチュートリアル Jul 07, 2025 am 12:07 AM

CSSロード回転子を作成するには3つの方法があります。1。境界の基本回転子を使用して、HTMLとCSSを介してシンプルなアニメーションを?qū)g現(xiàn)します。 2。複數(shù)のポイントのカスタム回転子を使用して、異なる遅延時(shí)間を経てジャンプ効果を?qū)g現(xiàn)します。 3.ボタンに回転子を追加し、JavaScriptを介してクラスを切り替えて、読み込みステータスを表示します。各アプローチは、ユーザーエクスペリエンスを向上させるために、色、サイズ、アクセシビリティ、パフォーマンスの最適化などのデザインの詳細(xì)の重要性を強(qiáng)調(diào)しています。

CSSブラウザの互換性の問(wèn)題とプレフィックスに対処します CSSブラウザの互換性の問(wèn)題とプレフィックスに対処します Jul 07, 2025 am 01:44 AM

CSSブラウザの互換性とプレフィックスの問(wèn)題に対処するには、ブラウザサポートの違いを理解し、ベンダーのプレフィックスを合理的に使用する必要があります。 1. FlexBoxやグリッドのサポート、位置:粘著性の無(wú)効、アニメーションのパフォーマンスなどの一般的な問(wèn)題を理解することは異なります。 2. CANIUSE確認(rèn)機(jī)能サポートステータスを確認(rèn)します。 3. -webkit-、-moz-、-ms-、-o-およびその他のメーカーのプレフィックスを正しく使用します。 4.自動(dòng)的にプレフィックスを追加するためにAutoprefixerを使用することをお?jiǎng)幛幛筏蓼埂?5. PostCSSをインストールし、ターゲットブラウザを指定するようにBrowserSlistを構(gòu)成します。 6.建設(shè)中の互換性を自動(dòng)的に処理します。 7. Modernizr検出機(jī)能は、古いプロジェクトに使用できます。 8.すべてのブラウザの一貫性を追求する必要はありません、

ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:インライン、ブロック、およびinline-blockinhtml/cssarelayoutbehavior、spaceusage、andstylingcontrol.1.inlineelementsflowwithtext、notstartonnewlines、nagrorewidth/height、height、andonlyhorizo??ntalpadddddddddddddddding

スタイリングは、CSSとは異なるリンクを訪問(wèn)しました スタイリングは、CSSとは異なるリンクを訪問(wèn)しました Jul 11, 2025 am 03:26 AM

アクセスしたリンクのスタイルを設(shè)定すると、特にコンテンツ集約型のWebサイトでユーザーエクスペリエンスを向上させることができ、ユーザーがより良いナビゲートを支援します。 1。CSSを使用してください:訪問(wèn)した擬似クラスは、色の変化などの訪問(wèn)されたリンクのスタイルを定義します。 2。ブラウザは、プライバシーの制限により、いくつかの屬性の変更のみを許可することに注意してください。 3.突然の狀態(tài)を避けるために、色の選択は全體的なスタイルと調(diào)整する必要があります。 4.モバイル端子はこの効果を表示しない場(chǎng)合があり、アイコン補(bǔ)助ロゴなどの他の視覚的なプロンプトと組み合わせることをお?jiǎng)幛幛筏蓼埂?/p>

CSSクリップパスでカスタムシェイプを作成します CSSクリップパスでカスタムシェイプを作成します Jul 09, 2025 am 01:29 AM

CSSのクリップパス屬性を作物要素に使用して、寫真やSVGに依存することなく、三角形、円形ノッチ、ポリゴンなどのカスタム形狀になります。その利點(diǎn)には、次のものが含まれます。1。円、楕円、ポリゴンなどのさまざまな基本的な形狀をサポートします。 2。レスポンシブ調(diào)整とモバイル端子に適応可能。 3.アニメーションが簡(jiǎn)単で、HoverまたはJavaScriptと組み合わせて動(dòng)的効果を?qū)g現(xiàn)できます。 4.レイアウトフローには影響せず、ディスプレイエリアのみを収穫します。一般的な使用法は、円形のクリップパス:円(50pxatcenter)および三角クリップパス:ポリゴン(50%0%、100 0%、0 0%)などです。知らせ

CSSを使用して応答性のある畫像を作成する方法は? CSSを使用して応答性のある畫像を作成する方法は? Jul 15, 2025 am 01:10 AM

CSSを使用してレスポンシブ畫像を作成するには、主に次の方法で達(dá)成できます。1。最大幅を使用してください:100%と高さ:自動(dòng)化して、割合を維持しながら畫像がコンテナ幅に適応できるようにします。 2。HTMLのSRCSETおよびサイズの屬性を使用して、異なる畫面に適合した畫像ソースをインテリジェントにロードします。 3.オブジェクトフィットとオブジェクトポジションを使用して、畫像のトリミングとフォーカスディスプレイを制御します。一緒に、これらの方法により、畫像がさまざまなデバイスで明確かつ美しく表示されるようになります。

一般的なCSSブラウザの矛盾とは何ですか? 一般的なCSSブラウザの矛盾とは何ですか? Jul 26, 2025 am 07:04 AM

さまざまなブラウザのCSS解析に違いがあるため、主にデフォルトのスタイルの違い、ボックスモデルの計(jì)算方法、フレックスボックスおよびグリッドレイアウトサポートレベル、および特定のCSS屬性の一貫性のない動(dòng)作を含む一貫性のないディスプレイ効果が得られます。 1.デフォルトのスタイル処理は一貫性がありません。解決策は、cssresetまたはremormize.cssを使用して初期スタイルを統(tǒng)合することです。 2。IEの古いバージョンのボックスモデル計(jì)算方法は異なります。 Box-Sizing:Border-Boxを統(tǒng)一された方法で使用することをお?jiǎng)幛幛筏蓼埂?3. FlexBoxとグリッドは、エッジの場(chǎng)合や古いバージョンでは異なる機(jī)能を示します。より多くのテストを行い、Autoprefixerを使用します。 4.一部のCSS屬性の動(dòng)作は一貫性がありません。 Caniuseは相談して格下げする必要があります。

CSSユニットの分解:PX、EM、REM、VW、VH比較 CSSユニットの分解:PX、EM、REM、VW、VH比較 Jul 08, 2025 am 02:16 AM

CSSユニットの選択は、設(shè)計(jì)要件と応答性の要件に依存します。 1.PXは固定サイズに使用され、正確な制御に適していますが、弾力性の欠如に適しています。 2.EMは相対単位であり、親要素の影響によって簡(jiǎn)単に引き起こされますが、REMはルート要素に基づいてより安定しており、グローバルなスケーリングに適しています。 3.VW/VHは、レスポンシブデザインに適したビューポートサイズに基づいていますが、極端な畫面の下でのパフォーマンスに注意を払う必要があります。 4.選択するときは、応答性の調(diào)整、要素階層関係、ビューポートの依存関係に基づいて決定する必要があります。合理的な使用は、レイアウトの柔軟性とメンテナンスを改善できます。

See all articles