Pregunta

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

¿Fue útil?

Solución 2

Entendí mal cómo funcionó la escucha del evento. Aquí está la información:

https://developer.chrome.com/apps/event_pages.html#registration

"Debido a que los mismos oyentes solo existen en el contexto de la página del evento, debe usar AddListener cada vez que se carga la página del evento; solo hacerlo en tiempo de ejecución.

Me señaló en un comentario sobre el tema que presenté. Todo está funcionando ahora.

Otros consejos

Suena como un error, archivo uno en http://crbug.com/net e incluya el código de muestra. Actualice la pregunta para vincular al problema para que otros puedan protagonizarlo para rastrear el estado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top