2010-08-21 23 views

Respuesta

2

Sí, las notificaciones usan la API específica de Chrome, y la secuencia de comandos de contenido solo es válida para JavaScript general, etc. ... El background page es donde todas las API específicas de Chrome son capaces de ejecutarse ... Primero deberá registrar su fondo de página en el archivo manifest.json - como esto:

"background_page": "background.html", 

también en el archivo de manifiesto, Permitir los permisos necesarios:

"permissions": [ "notifications" ], 

a continuación, la secuencia de comandos en la página de fondo debe tener este aspecto:

<script> 
setTimeout("setNotification();",1); 
function setNotification(){ 
    var n 
    if (window.webkitNotifications.checkPermission() != 0){ 
    setNotification(); 
    return false; 
    } 
n = window.webkitNotifications.createHTMLNotification('http://www.your-notification-address.com'); 
n.show();} 
</script> 
+0

gran .. Gracias David :) – sharath

+0

Si estableces permisos iones para notificaciones en su manifiesto de extensión, no necesita verificar los permisos. http://code.google.com/chrome/extensions/notifications.html – npdoty

+1

Realmente no explica cómo puede mostrar una notificación de escritorio que se origina en un script de contenido. –

8

No se pueden mostrar las notificaciones directamente a través de un script de contenido. Pero, usted puede muéstrelos a través de la página de fondo.

Usted manifest.js debe ser algo como esto:

{ 
"name": "Notify This", 
"version": "0.1", 
"permissions": [ 
    "notifications" 
], 
"background_page": "background.html", 
"content_scripts": [ 
    { 
    "matches": ["http://www.example.com/*"], 
    "js": ["contentscript.js"] 
    } 
] 
} 

A continuación, utilice el chrome.extension.sendRequest():

// in your contentscript.js 
chrome.extension.sendRequest({msg: "Sup?"}, function(response) { // optional callback - gets response 
    console.log(response.returnMsg); 
}); 

Y en el extremo receptor que debe tener un onRequest oyente:

// in your background.html 
    chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 

     // Create a simple text notification: 
    var notify = webkitNotifications.createNotification(
     '48.png', // icon url - can be relative 
     'Hello!', // notification title 
     request.msg // notification body text 
    ); 

    notify.show(); 

    setTimeout(function(){ notify.cancel(); },5000); 
    sendResponse({returnMsg: "All good!"}); // optional response 
    }); 
+0

Gracias, finalmente, he trabajado algo así. También podrían permitir las notificaciones de escritorio desde las secuencias de comandos de contenido. La gente se molesta con Apple por esas API cerradas, pero no es como Google, donde la web debe ser más abierta ... –

+0

Esta es la respuesta que esperaba obtener, de acuerdo con el título de la pregunta. ¡Gracias! –

Cuestiones relacionadas