Terdapat fungsi yang sangat bagus dan praktis di bagian bawah software Gtalk, yaitu fungsi pengingat email Gmail. Jumlah email baru yang belum dibaca di Gmail Anda akan diperbarui secara berkala.
Bayangkan betapa menariknya jika kita mem-porting fitur ini ke Firefox!
Langkah pertama adalah menampilkan ikon dan data di status bar .
Melalui artikel “ Cara Membuat Ekstensi Jetpack untuk Firefox ”, kita dapat dengan mudah membuat:
jetpack.statusBar.append({
html: '', //Ikon email Gmail dan Nomor yang belum dibaca pesan baru
lebar: 55, //Lebar pada bilah status adalah 55
siap: fungsi(widget) {
$("#count", widget).css({ //Tambahkan gaya ke jumlah email baru yang belum dibaca
kursor: "penunjuk",
paddingKiri:"4px",
fontFamily: "Tahoma, Arial, sans-serif",
Perataan vertikal: "atas",
Ukuran font: "10 piksel",
tinggi baris:"18px",
});
}
});
Langkah kedua adalah mendapatkan data Gmail dan memperbarui jumlah email baru yang belum dibaca.
Itu dapat diperoleh melalui umpan email Gmail (diperlukan login): https://mail.google.com/mail/feed/atom
Tag fullcount di kode sumber feed digunakan untuk mencatat jumlah email baru yang belum dibaca.
Oke, pertama sumber datanya sudah tersedia. Selanjutnya, kita menggunakan teknologi Ajax yang familiar untuk memperoleh data dan menetapkannya ke elemen tertentu.
pembaruan fungsi(widget) {
varwidget = $(widget);
$.mendapatkan(" https://mail.google.com/mail/feed/atom ", fungsi(xml) {
var el = $(xml).find("fullcount"); // Node yang mencatat jumlah email baru yang belum dibaca
jika(el){
var hitungan baru = parseInt(el.get(0).textContent);
widget.find("#count").text(newcount); //Menetapkan ke elemen yang ditentukan
} else { //Jika belum login, tampilkan "Login"
widget.find("#count").text( "Login" );
}
});
}
Kami juga dapat melakukan beberapa pengoptimalan: misalnya, ketika jumlah email baru yang belum dibaca lebih banyak dari jumlah email asli, menambahkan informasi cepat, dll.
Metode jetpack.notifications.show(options) digunakan untuk informasi cepat. Parameter opsi memiliki tiga atribut: title (String): judul ikon notifikasi (URL): URL badan notifikasi (String); : subjek isi pemberitahuan.
Kode yang dioptimalkan adalah sebagai berikut:
var hitungan = 0;
pembaruan fungsi(widget) {
varwidget = $(widget),
notify = function(msg) {// Metode publik untuk mendefinisikan notifikasi
jetpack.notifikasi.show({
judul: "Gmail",
badan: pesan,
ikon: " http://mail.google.com/mail/images/favicon.ico "
});
};
$.mendapatkan(" https://mail.google.com/mail/feed/atom ", fungsi(xml) {
var el = $(xml).find("fullcount"); // Node yang mencatat jumlah email baru yang belum dibaca
jika(el){
var hitungan baru = parseInt(el.get(0).textContent);
if(newcount > count) {// Jika jumlah email baru yang belum dibaca lebih banyak dari jumlah email asli, dari mana datangnya perintah?
var pengirim = $(xml).find("nama").get(0).textContent;
notify("Pesan baru dari "+pengirim);
}
hitungan = hitungan baru;
widget.find("#count").text(count); //Menetapkan ke elemen yang ditentukan
} else { //Jika belum login, minta login
widget.find("#count").text( "Login" );
notify("Silahkan login ke Gmail");
}
});
}