マニフェスト.json:
{
"app": {
"background": {
"scripts": [ "background.js" ]
}
},
"key": "...",
"manifest_version": 2,
"name": "Push Sample",
"permissions": [ "notifications", "pushMessaging" ],
"version": "1.0"
}
background.js:
chrome.runtime.onInstalled.addListener(
function() {
chrome.pushMessaging.onMessage.addListener(
function (message) {
chrome.notifications.create(
'',
{
type: 'basic',
iconUrl: 'icon24.png',
title: 'The Title',
message: message.payload
},
function (notificationID) {
}
);
}
);
}
);
それがアプリ全体です。HTML ページ (ウィンドウは作成されません) も他の JavaScript もありません。
バックグラウンド ページがアクティブな場合、アプリは正常に動作し、画面の右上に通知メッセージのポップアップが表示されます。(私のサーバーが使用するチャンネル ID を表示するために一時的に持っていたコードは示されていません。サーバーは、Chrome サービス用の Google Cloud Messaging を使用する PHP プログラムです。問題ないようです。)
ただし、数秒間何もしないと、アプリが非アクティブになります。Chrome の [拡張機能] ページで、次の行:
Inspect views: background page
変更:
Inspect views: background page (Inactive)
メッセージが送信されると、その行はアクティブな状態 (「(非アクティブ)」部分のない「バックグラウンド ページ」に変わります。これは、メッセージが何らかの意味で受信されたことを示します。ただし、通知コードはポップアップにはなりません。 .
JavaScript コンソールが開いているとき、アプリはアクティブなままで動作するため、ロギングの何が問題なのかを判断できません。
質問: 拡張機能ページのステータス表示によると、メッセージの到着時にアプリが起動しているように見えますが、機能していません。理由を知っている人はいますか?
バグ ファイル: Chrome の安定版 (ベータ版ではない) を含め、さらに多くのテストを行いました。OS X、Chrome OS、および Windows で試しました。同じこと。私が提出した問題は次のとおりです: https://code.google.com/p/chromium/issues/detail?id=316315