ようへい
ラベル HTML5 の投稿を表示しています。 すべての投稿を表示
ラベル HTML5 の投稿を表示しています。 すべての投稿を表示

2013年6月21日金曜日

Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法

Firefox 22から実装されているHTML5 Notifications APIですが、権限がリクエストされた時にこんなポップアップが表示されます。
Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法
Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法
ここで、デスクトップ通知の許可/拒否を設定します。
常に通知を表示する」か「通知をブロックする」に設定した場合、以後はポップアップが表示されません。
許可されると、こんなカンジでデスクトップ通知を受けれます。
Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法
のちのち、この設定を変更したいという場合、どうやったら変更できるのか調べてみました。

設定に無い!

まずオプション画面を一通り見たのですが、該当の設定がありませんでした。
こりゃ困った。
どっかには保存されているだろうと、Firefoxのprofileを覗いてみる。
permissions.sqliteに、typedesktop-notificationとなっているレコードを発見。hostの値も合っているし、これっぽい。
最悪、ここから変更はできそう。
でも、さすがに設定画面が用意されていない事は無いだろう。ということで、Firefoxの画面を一通り調べてみた。

こんなところにあった

ありましたよ。分かりにくいけど。
Firefoxのメニューから、ツール»ページの情報をクリックして、サイト別設定タブを開く。
すると、サイトからの通知の表示というのがあるので、ここから設定できます。
Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法
Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法
一括管理できる画面欲しいなぁ・・・。
FirefoxでのHTML5 Notifications API 通知方法 - ログろいど
関連記事

FirefoxでのHTML5 Notifications API 通知方法

Firefox 22からHTML5 Notifications APIがサポートされるという事で早速使ってみた。 とりあえずこんな感じで使える。
function notifyReq(){
  Notification.requestPermission(function(permission){
    console.debug("Notification permission: "+permission);
    if(Notification.permission == "granted"){
      notify();
    }
  });
};
function notify(){
  switch(Notification.permission){
    case "granted":
      new Notification("デスクトップ通知テスト", {
        icon:"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixMhqVE-KPC4uFvSew7A5jZ64O0oJVsUXtBJVwv6JTF0BRIV_dI0hyYUh8qEGR6pdJ-WJaYd9xk97foeo_VCFIXc1O6vI8wWbl6grHGpbItKdrIMbn4tU8w4Zeaqj05ynBJdbhEHtkyWgE/s220/logroid_150.png",
        body:"デスクトップ通知のテストです",
        tag:"notification-test",
      });
      break;
    case "default":
      notifyReq();
      break;
    case "denied":
      console.warn("デスクトップ通知が拒否されています");
      break;
  }
};
notify();
こんなカンジで通知されます。
FirefoxでのHTML5 Notifications API 通知方法
Notification.permissionで現在の権限を見ることができる。
デフォルト状態(ポップアップ表示)なら"default"、許可されていれば"granted"、拒否されていれば"denied"の文字列が返される。
表示が許可されていない場合はNotification.requestPermissionで、権限をリクエストする。こんなポップアップが表示される。
FirefoxでのHTML5 Notifications API 通知方法
FirefoxでのHTML5 Notifications API 通知方法
その後、new Notificationにタイトルとオプションを設定したハッシュを渡す。
ハッシュの中のiconはURLでも良いし、base64の文字列でも良い。
tagを設定すると、デスクトップ通知が多重表示されるのを防げる。
という感じ。
また、new Notificationで得られるインスタンスには、oncloseonclickonerroronshowイベントが登録できる。
onclick時に得られるEventのtargetはNotificationオブジェクトとなっている。
通知クリックで、該当のウィンドウ(タブ)をアクティブ化とかできれば楽しそうだったけど、無理っぽい。

デモ

Firefoxでの HTML5 Notifications (デスクトップ通知) 設定変更方法 - ログろいど
関連記事