HTML 5通知API


こんにちは、Habr。 この記事では、 HTML Notification APIについて説明します 。

Notification APIはどのような機能を提供しますか?


APIを使用すると、ブラウザを介して通知を送信できます。 各通知にアイコンを設定し、通知をグループ化し、通知のタイトルとテキストを指定できます。

ブラウザのサポート



通知コンストラクターがあるにも関わらず、Opera 15ベータ版は通知APIで動作しません。
モバイルプラットフォームでは、この技術は機能しません 。
webkitエンジンには、webkitNotificationsという形式の古い表記があります。

仕組み


作業サイクルは次のとおりです。
  1. 送信する許可を取得します。
  2. サイトのルールは固定されています。
  3. 通知を送信します。


最初の通知


通知を送信する前に、許可を確認することをお勧めします。

許可チェック

合計で3つの解像度のバリエーションがあります。


許可を確認するために、3つの方法を見つけました。

1. Notification.permissionプロパティの値を通じて。

switch ( Notification.permission.toLowerCase() ) { case "granted": //  break; case "denied": //  break; case "default": //  } 

短所:


2.送信許可を取得しようとする
 var currentPermission; Notification.requestPermission( function(result) { currentPermission = result } ); 

短所:
状態がデフォルトの場合、ユーザーには通知を送信するサイトの要望に関する質問が表示されます。 ユーザーが何かを選択するまで、コールバック関数は機能せず、ステータスを受け取りません。

小さなヒント:
コールバックの遅延を使用して、requestPermissionを介してデフォルトの状態を決定できます。
 var permission, timer = setTimeout( function() { permission = "default" }, 500 ); Notification.requestPermission( function(state){ clearTimeout(timer); permission = state } ); 


3.通知を送信する
各通知にはイベントがあり、詳細は後ほどです。
 var notify = new Notification("test"); notify.onerror = function(){ console.log("permission state = default or denied"); }; 

短所:
2つのステータスで動作します。

許可を得る

Notification.requestPermissionはデフォルトの許可で起動され、選択した許可を引数として受け取る関数を取ります。
 Notification.requestPermission( newMessage ); function newMessage(permission) { if( permission != "granted" ) return false; var notify = new Notification("Thanks for letting notify you"); }; 


upd: kromxr は 、許可要求はイベント後にのみ発生することを通知し ます 。 たとえば、ユーザーは「システム通知を許可する」ボタンをクリックしました。

通知提出

それで通知に行きました:
 var mailNotification = new Notification(" ", { tag : "ache-mail", body : ",    ...", icon : "http://habrastorage.org/storage2/cf9/50b/e87/cf950be87f8c34e63c07217a009f1d17.jpg" }); 

そして結果:


私たちは理解しています:
「Andrey Chernyshev」-通知タイトル(必須)
さまざまなブラウザとOSでさまざまな方法でトリミングされます。15文字に制限することをお勧めします。

tag-通知をチェーンにリンクするタグ。
同じタグを持つ通知を交換可能にします。

body-通知コンテンツ。
さまざまなブラウザとOSでさまざまな方法でトリミングされます。20文字に制限することをお勧めします。

icon-通知アイコン。
OS Xのクロムとサファリでは表示されません。

通知イベント

通知には4つのイベントがあります。

onclick
ユーザーが通知本文をクリックしたときに発生します。 十字ボタンまたは閉じるボタンをクリックすると機能しません(mac os)。

ショー
通知が表示されるときに機能します。

onerror
許可なしに通知を表示しようとすると機能します(デフォルト、拒否)。

onclose
ウィンドウが閉じると発生します。
WindowsのChromeに問題があります。 closeイベントは、通知がクリックされたときに発生しません。

決定の変更


ブラウザでいつでも、通知ソリューションを削除/変更できます。
Chrome:設定-設定-詳細設定を表示-プライバシー-コンテンツ設定-通知。
Safari:設定-通知。
Firefox:ページを右クリック-ページ情報-権限-通知を表示します。

情報を視覚的に知覚するためのリンク

Source: https://habr.com/ru/post/J183630/


All Articles