Hay una función muy buena y práctica en la parte inferior del software Gtalk, que es la función de recordatorio de correo electrónico de Gmail. La cantidad de nuevos correos electrónicos no leídos en su Gmail se actualizará periódicamente.
¡Imagínense lo interesante que sería si transfiriéramos esta función a Firefox!
El primer paso es mostrar iconos y datos en la barra de estado .
A través del artículo " Cómo crear una extensión Jetpack para Firefox ", podemos crear fácilmente:
jetpack.statusBar.append({
html: '<img src="http://mail.google.com/mail/images/favicon.ico"/><span id="count"></span>', //Icono de correo de Gmail y número no leído de nuevos mensajes
ancho: 55, //El ancho de la barra de estado es 55
onReady: función (widget) {
$("#count", widget).css({ //Agregar estilo a la cantidad de correos electrónicos nuevos no leídos
cursor: "puntero",
rellenoIzquierda: "4px",
fontFamily: "Tahoma, Arial, sans-serif",
alineación vertical: "arriba",
Tamaño de fuente: "10px",
altura de línea: "18px",
});
}
});
El segundo paso es obtener datos de Gmail y actualizar la cantidad de correos electrónicos nuevos no leídos.
Se puede obtener a través del feed de correo de Gmail (es necesario iniciar sesión): https://mail.google.com/mail/feed/atom
La etiqueta fullcount en el código fuente del feed se utiliza para registrar el número actual de correos electrónicos nuevos no leídos.
Bien, primero la fuente de datos está disponible. A continuación, utilizamos la conocida tecnología Ajax para obtener los datos y asignarlos al elemento especificado.
actualización de función (widget) {
var widget = $(widget);
$.get(" https://mail.google.com/mail/feed/atom ", función(xml) {
var el = $(xml).find("fullcount"); // Nodo que registra el número de correos electrónicos nuevos no leídos
si(el){
var newcount = parseInt(el.get(0).textContent);
widget.find("#count").text(newcount); //Asignar al elemento especificado
} else { //Si no has iniciado sesión, muestra "Iniciar sesión"
widget.find("#count").text( "Iniciar sesión" );
}
});
}
También podemos hacer algunas optimizaciones: por ejemplo, cuando la cantidad de correos electrónicos nuevos no leídos es mayor que la cantidad de correos electrónicos originales, agregar información rápida, etc.
El método jetpack.notifications.show(options) se utiliza para solicitar información. El parámetro de opciones tiene tres atributos: título (Cadena): el título del ícono de notificación (URL): la URL del cuerpo de la notificación (Cadena); : el contenido del asunto de la notificación.
El código optimizado es el siguiente:
recuento de variables = 0;
actualización de función (widget) {
var widget = $(widget),
notify = function(msg) { // Método público para definir notificaciones
jetpack.notificaciones.show({
título: "Gmail",
cuerpo: mensaje,
icono: " http://mail.google.com/mail/images/favicon.ico "
});
};
$.get(" https://mail.google.com/mail/feed/atom ", función(xml) {
var el = $(xml).find("fullcount"); // Nodo que registra el número de correos electrónicos nuevos no leídos
si(el){
var newcount = parseInt(el.get(0).textContent);
if(newcount > count) { // Si la cantidad de correos electrónicos nuevos no leídos es mayor que la cantidad de correos electrónicos originales, ¿de dónde viene el mensaje?
var remitente = $(xml).find("nombre").get(0).textContent;
notificar("Nuevo mensaje de "+remitente);
}
recuento = nuevo recuento;
widget.find("#count").text(count); //Asignar al elemento especificado
} else { //Si no has iniciado sesión, solicita iniciar sesión
widget.find("#count").text( "Iniciar sesión" );
notificar("Inicie sesión en Gmail");
}
});
}