クロム拡張機能を使用してクロムブラウザに送信されたプッシュ通知をキャッチして、ファイルに書き込むか、受信時にコードを実行しようとしています。 私が抱えている問題は、あなたの中にはまだまだ単純ですので、私がこれまでに見つけたものと私のコードを共有します。クロム拡張子付きのプッシュ通知の録音/キャッチ
notifhook.js
(function() {
// save the original function
var origCreateNotif = notifications.createNotification;
// overwrite createNotification with a new function
notifications.createNotification = function(img, title, body) {
// call the original notification function
var result = origCreateNotif.apply(this, arguments);
alert("Function was called");
// bind a listener for when the notification is displayed
result.addEventListener("display", function() {
alert("Triggered code");
// do something when the notification is displayed
});
return result;
}
})()
manifest.jsonを
{
"name": "Push",
"description": "Relay push notifications",
"version": "3.0",
"permissions": ["notifications"],
"web_accessible_resources": ["notifhook.js"],
"content_scripts" : [{
"run_at" : "document_start",
"matches" : ["<all_urls>"],
"js" : ["inject.js"]
}],
"manifest_version": 2
}
inject.js
var s = document.createElement("script");
s.src = chrome.extension.getURL("notifhook.js");
document.documentElement.appendChild(s);
使用されるコードのほとんどは、ここで撮影された:
How can I listen to notifications?
は、私は私の拡張機能をテストするには、このWebアプリケーションを使用しています: http://ttsvetko.github.io/HTML5-Desktop-Notifications/
だから、私の知識にどのようなこれまでに起こっている私の主な機能を含むブロックは、私が警告することができるので うまくWebページに追加されていることですそれの開始とすべてのページの読み込みにトリガされます。
何がうまくいかないのは、イベントリスナーが機能していないか、関数名が間違っているというプッシュ通知を受け取った場合です。私はwebkitNotificationsが単に「通知」に置き換えられた場所を読んでいます。
ご迷惑をおかけして申し訳ありません。
から取られたオリジナルのスクリプトでimportScriptを呼び出す必要があり、通知の火を押していますか?プッシュ通知がservis workerで実行され、スクリプトが起動しない場合は、サービスワーカーの登録をスクリプトで上書きし、オリジナルのimportScriptを呼び出す必要があります。 – jcubic
クロームが開いている限り、私は通知を受け取ります。 どのように登録を上書きしようとしますか? – LAZ
オープンで私はブラウザではないページを意味します。ブラウザのタブ(facebookのような)を閉じている間に通知を受けると、通知はサービスワーカーから来たものです。 – jcubic