Existe uma função muito boa e prática na parte inferior do software Gtalk, que é a função de lembrete por e-mail do Gmail. O número de novos e-mails não lidos no seu Gmail será atualizado regularmente.
Imagine como seria interessante se portássemos esse recurso para o Firefox!
O primeiro passo é exibir ícones e dados na barra de status .
Através do artigo “ Como criar uma extensão Jetpack para Firefox ”, podemos criar facilmente:
jetpack.statusBar.append({
html: '<img src="http://mail.google.com/mail/images/favicon.ico"/><span id="count"></span>', //ícone de e-mail do Gmail e número não lido de novas mensagens
width: 55, //A largura na barra de status é 55
onReady: função(widget) {
$("#count", widget).css({ //Adiciona estilo ao número de novos e-mails não lidos
cursor: "ponteiro",
preenchimentoEsquerda:"4px",
fontFamily: "Tahoma, Arial, sem serifa",
verticalAlign: "topo",
tamanho da fonte: "10px",
altura da linha:"18px",
});
}
});
A segunda etapa é obter os dados do Gmail e atualizar o número de novos e-mails não lidos.
Ele pode ser obtido através do feed de e-mail do Gmail (é necessário fazer login): https://mail.google.com/mail/feed/atom
A tag fullcount no código-fonte do feed é usada para registrar o número atual de novos e-mails não lidos.
OK, primeiro a fonte de dados está disponível. A seguir, usamos a tecnologia familiar Ajax para obter os dados e atribuí-los ao elemento especificado.
atualização de função(widget) {
var widget = $(widget);
$.get(" https://mail.google.com/mail/feed/atom ", function(xml) {
var el = $(xml).find("fullcount"); // Nó que registra o número de novos e-mails não lidos
se(el){
var newcount = parseInt(el.get(0).textContent);
widget.find("#count").text(newcount); //Atribuir ao elemento especificado
} else { //Se não estiver logado, exibe "Login"
widget.find("#count").text( "Login");
}
});
}
Também podemos fazer algumas otimizações: por exemplo, quando o número de novos e-mails não lidos for maior que o número original de e-mails, adicionar informações imediatas, etc.
O método jetpack.notifications.show(options) é usado para informações de prompt. O parâmetro options possui três atributos: title (String): o título do ícone de notificação (URL): a URL do corpo da notificação (String). : o conteúdo do assunto da notificação.
O código otimizado é o seguinte:
var contagem = 0;
atualização de função(widget) {
var widget = $(widget),
notify = function(msg) { // Método público para definir notificações
jetpack.notificações.show({
título: "Gmail",
corpo: mensagem,
ícone: " http://mail.google.com/mail/images/favicon.ico "
});
};
$.get(" https://mail.google.com/mail/feed/atom ", function(xml) {
var el = $(xml).find("fullcount"); // Nó que registra o número de novos e-mails não lidos
se(el){
var newcount = parseInt(el.get(0).textContent);
if(newcount > count) { // Se o número de novos e-mails não lidos for maior que o número de e-mails originais, de onde vem o prompt?
var remetente = $(xml).find("nome").get(0).textContent;
notificar("Nova mensagem de "+remetente);
}
contagem = nova contagem;
widget.find("#count").text(count); //Atribuir ao elemento especificado
} else { //Se não estiver logado, solicita o login
widget.find("#count").text( "Login");
notificar("Faça login no Gmail");
}
});
}