DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> html5 桌面提醒:Notifycations應用介紹
html5 桌面提醒:Notifycations應用介紹
編輯:HTML5詳解     
Html5中的桌面提醒(web notifications)可以在當前頁面窗口彈出一個消息框,這個消息框是跨 Tab 窗口的,這在用戶打開多個 tab 浏覽網頁時,提醒比較方便,容易讓用戶看到。目前只要是 webkit 內核支持該功能。 
該功能在 Chrome 下需要以 http 方式打開網頁才能啟用。 
桌面提醒功能由 window.webkitNotifications 對象實現(webkit內核)。 
window.webkitNotifications 對象沒有屬性,有四個方法: 
1.requestPermission() 
  該方法用於向用戶申請消息提醒權限,如果當前沒有開放該權限,浏覽器將彈出授權界面,用戶授權後,在對象內部產生一個狀態值(一個0、1或 2 的整數): 
0:表示用戶同意消息提醒,只在該狀態下可以使用信息提醒功能; 
1:表示默認狀態,用戶既未拒絕,也未同意; 
2:表示用戶拒絕消息提醒。 
2.checkPermission() 
  這個方法用於獲取 requestPermission() 申請到的權限的狀態值。 
3.createNotification() 
  這個方法以純消息的方式創建提醒消息,它接受三個字符串參數: 
iconURL:在消息中顯示的圖標地址, 
title:消息的標題, 
body:消息主體文本內容 
該方法會返回一個 Notification對象,可以針對這個對象做更多的設置。 
Notification 對象的屬性與方法: 

復制代碼代碼如下:www.mb5u.com
dir: "" 
onclick: null 
onclose: null 
ondisplay: function (event) { 
onerror: null 
onshow: null 
replaceId: "" 
tag: "" 
__proto__: Notification 
addEventListener: function addEventListener() { [native code] } 
cancel: function cancel() { [native code] } 
close: function close() { [native code] } 
constructor: function Notification() { [native code] } 
dispatchEvent: function dispatchEvent() { [native code] } 
removeEventListener: function removeEventListener() { [native code] } 
show: function show() { [native code] } 
__proto__: Object 

dir:設置消息的排列方向,可取值為“auto”(自動), “ltr”(left to right), “rtl”(right to left)。 
  tag:為消息添加標簽名。如果設置此屬性,當有新消息提醒時,標簽相同的消息只顯示在同一個消息框,後一個消息框會替換先前一個,否則出現多個消息提示框,但是最多值顯示3個消息框,超過3個,後繼消息通知會被阻塞。 
  onshow:當消息框顯示的時候觸發該事件; 
  onclick: 當點擊消息框的時候觸發該事件; 
  onclose:當消息關閉的時候觸發該事件; 
  onerror:當出現錯誤的時候觸發該事件; 
方法: 
  addEventListener && removeEventListener:常規的添加和移除事件方法; 
  show:顯示消息提醒框; 
  close:關閉消息提醒框; 
  cancel:關閉消息提醒框,和 close一樣; 
4.createHtmlNotification() 
  該方法與 createNotification() 不同的是,他以HTML方式創建消息,接受一個參數: Html 文件的URL,該方法同樣返回 Notification對象。 
一個實例: 

復制代碼代碼如下:www.mb5u.com
<!DOCTYPE Html> 
<Html> 
<head> 
<title>notifications in Html5</title> 
</head> 
<body> 
<form> 
<input id="trynotification" type="button" value="Send notification" /> 
</form> 
<script type="text/Javascript"> 
document.getElementById("trynotification").onclick = function(){ 
notify(Math.random()); 
}; 
function notify(tab) { 
if (!window.webkitNotifications) { 
return false; 

var permission = window.webkitNotifications.checkPermission(); 
if(permission!=0){ 
window.webkitNotifications.requestPermission(); 
var requestTime = new Date(); 
var waitTime = 5000; 
var checkPerMiniSec = 100; 
setTimeout(function(){ 
permission = window.webkitNotifications.checkPermission(); 
if(permission==0){ 
createNotification(tab); 
}else if(new Date()-requestTime<waitTime){ 
setTimeout(arguments.callee,checkPerMiniSec); 

},checkPerMiniSec); 
}else if(permission==0){ 
createNotification(tab); 


function createNotification(tab){ 
var showSec = 10000; 
var icon = "/School/UploadFiles_7810/201603/20160313153957930.png"; 
var title = "[" + new Date().toLocaleTimeString() + "] close after " + (showSec/1000) + " seconds"; 
var body = "hello world, i am webkitNotifications informations"; 
var popup = window.webkitNotifications.createNotification(icon, title, body); 
popup.tag = tab; 
popup.ondisplay = function(event) { 
setTimeout(function() { 
event.currentTarget.cancel(); 
}, showSec); 

popup.show(); 

</script> 
</body> 
</Html> 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved