manifest.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) {
}
);
}
);
}
);
Esa es toda la aplicación. Sin página HTML (no se crea ninguna ventana) y ningún otro JavaScript.
Cuando la página de fondo está activa, la aplicación funciona bien y veo la ventana emergente del mensaje de notificación en la parte superior derecha de mi pantalla. (No se muestra un código que tuve temporalmente para mostrarme la ID de canal, que mi servidor usa. El servidor es un programa PHP que utiliza mensajes de Google Cloud para el servicio Chrome. Parece estar bien).
Sin embargo, si entonces no hago nada por unos segundos, la aplicación se vuelve inactiva. En la página de extensiones en Chrome, la línea:
Inspect views: background page
cambios a:
Inspect views: background page (Inactive)
Cuando se envía un mensaje, esa línea cambia a la parte ("Página de fondo" activa, sin la parte "(inactiva)", lo que indica que el mensaje se ha recibido en cierto sentido. Sin embargo, el código de notificación no da como resultado una ventana emergente .
No puedo determinar qué hay de malo en el registro, porque cuando se abre la consola JavaScript, la aplicación permanece activa y luego funciona.
Pregunta: Mi aplicación parece despertarse cuando llega el mensaje, de acuerdo con la indicación de estado en la página de extensiones, pero no funciona. ¿Alguien sabe por qué?
Error archivado: Hizo muchas más pruebas, incluso con una versión estable (no beta) de Chrome. Probado en OS X, Chrome OS y Windows. La misma cosa. Aquí está el problema que presenté: https://code.google.com/p/chromium/issues/detail?id=316315