ä½¿ç¨ HTML5 ç Notification APIçæ¹æ³ï¼
1ãç³è¯·æé
åºäºå®å
¨èèï¼è¦åéæ¡é¢æ¶æ¯ï¼éè¦å
ç³è¯·ç¨æ·ææãNotification对象æä¾äºä¸ä¸ªéæçæ¹æ³âârequestPermission()ï¼å®æ¥æ¶ä¸ä¸ªåè°å½æ°ä½ä¸ºåæ°ï¼å¹¶æè¿åå¼ä¼ éç»åè°å½æ°ä½ä¸ºåæ°ï¼
Notification.requestPermission(function(status){
if(Notification.permission !== status){
Notification.permission = status;
}
});
è¿åå¼ä¸ºå符串ï¼æ以ä¸ä¸ä¸ªå¼ï¼
default
granted
denied
é»è®¤ä¸ºdefaultï¼ä¹å°±æ¯éè¦è¯¢é®ï¼è¡¨ç°ådeniedä¸æ ·ã
2ãå建æ¶æ¯
ç¨æ·ææ以åï¼å°±å¯ä»¥éè¿ä¸é¢æ¹å¼å建ä¸æ¡æ¡é¢æéäºï¼
var n = new Notification(title, options);
options为åå
¸ï¼ä¼ å
¥Notification对象çå±æ§ã
3ãå
å«å±æ§
Notification对象æå¦ä¸å 个åªè¯»å±æ§ï¼
dir(æåæ¹åï¼ç»æµè¯é½ä¸æ¯æ)
lang(è¯è¨)
body(æ¶æ¯ä½)
tag(æ ç¾)
icon(iconå°å)
è¿
å 个å±æ§é½å¯ä»¥å¨å建æ¶æ¯çæ¶åï¼ä½ä¸ºoptionä¼ å
¥Notificationæé å½æ°ãæä¸ä¸tagå±æ§ï¼å¨æå¾å¤æ¶æ¯çæ¶åï¼è¿ä¸ªå±æ§å°±é常æç¨ï¼
å®ä¼ç¨æ¥æç¸åtagçææ°çæ¶æ¯å代ä¹åçæ¶æ¯ï¼åªæ¾ç¤ºä¸æ¡ææ°çæ¶æ¯ãæ¯å¦å¨ä¸ä¸ªè天室系ç»ä¸ï¼åæ¶åå 个人å¨è天çæ¶åï¼å°±å¯ä»¥ä»¥äººå为tagæ¾ç¤º
ä¸å人çææ°æ¶æ¯ã
4ãå®ä¹äºä»¶
Notification对象æå个äºä»¶ï¼åå«æ¯
onshow()
onclick()
onclose()
onerror()
åå«å¨æ¶æ¯æ¾ç¤ºã被ç¹å»ã被å
³éååºéçæ¶å被触åãä¸é¢çä¾åä¸å®æ´çå±ç¤ºäºè¿å个äºä»¶ç使ç¨ãé常æ
åµä¸ï¼åªéè¦å¤çç¹å»äºä»¶å°±å¤äºï¼æ¯å¦ç¹å»æ¶æ¯å跳转å°æä¸ç¹å®ç页é¢ã
举ä¾è¯´æï¼
window.addEventListener("load", function(){
if(Notification && Notification.permission !== "granted"){
Notification.requestPermission(function(status){
if(Notification.permission !== status){
Notification.permission = status;
}
});
}
var button = document.getElementsByTagName("button")[0];
button.addEventListener("click", function(){
var t = new Date().toLocaleString();
var options={
dir: "ltr",
lang: "utf-8",
icon: "
http://ihuster.com/static/avatar/m_default.png",
body: "ä½ å¥½åï¼æ¬¢è¿çè¨äº¤æµå"
};
if(Notification && Notification.permission === "granted"){
var n = new Notification("HUSTecho: "+ t, options);
n.onshow = function(){
console.log("You got me!");
};
n.onclick = function() {
alert("You clicked me!");
window.location = "/";
};
n.onclose = function(){
console.log("notification closed!");
};
n.onerror = function() {
console.log("An error accured");
}
}else if(Notification && Notification.permission !== "denied") {
Notification.requestPermission(function(status){
if(Notification.permission !== status){
Notification.permission = status;
}
if(status === "granted"){
for(var i = 0; i < 3; i++){
var n = new Notification("Hi! " + i, {
tag: "Beyoung",
icon: "
http://ihuster.com/static/avatar/b_default.png",
body: "ä½ å¥½åï¼ææ¯ç¬¬" + i +"æ¡æ¶æ¯å¦ï¼"
});
}
}
});
}else{
alert("Hi!");
}
});
});