html5桌面通知(Web Notifications)實例解析
來源:易賢網(wǎng) 閱讀:784 次 日期:2014-11-20 15:22:22
溫馨提示:易賢網(wǎng)小編為您整理了“html5桌面通知(Web Notifications)實例解析”,方便廣大網(wǎng)友查閱!

html5桌面通知(Web Notifications)對于需要實現(xiàn)在新消息入線時,有桌面通知效果的情況下非常有用,在此簡單介紹一下這個html5的新屬性。

這里有個不錯的demo:html5 web notification demo

從上面這個demo中 我們就可以獲取所需要的基本核心代碼,如下:

復(fù)制代碼代碼如下:<script>

var Notification = window.Notification || window.mozNotification || window.webkitNotification;

Notification.requestPermission(function (permission) {

// console.log(permission);

});

function show() {

var instance = new Notification(

"test title", {

body: " test message"

}

);

instance.onclick = function () {

// Something to do

};

instance.onerror = function () {

// Something to do

};

instance.onshow = function () {

// Something to do

};

instance.onclose = function () {

// Something to do

};

return false;

}

</script>

其中:Notification.requestPermission 這句代碼的功能就是向用戶請求權(quán)限允許。

通過以上的例子,基本思路我們已經(jīng)有了,首先加載文檔時,就向用戶請求權(quán)限,獲取權(quán)限后以后都so easy了。

復(fù)制代碼代碼如下:window.addEventListener('load', function () {

// At first, let's check if we have permission for notification

if (Notification && Notification.permission !== "granted") {

Notification.requestPermission(function (status) {

if (Notification.permission !== status) {

Notification.permission = status;

}

});

}

});

火狐下 驗證是通過的,但是在chrome下總是出不來,后來發(fā)現(xiàn)這樣一段話

復(fù)制代碼代碼如下:Not a Bug, Feature.

Desktop Notifications can only be triggered via a user action. Typing into the

JavaScript console has the same effect as raw javascript code embedded into the web

page (no user action). Typing the javascript into the location bar, however,

represents a user-action (the user is intentionally visiting a javascript link to

enable notifications, probably for sites that tend to use href="javascript:" instead

of onclick="".

I'm pretty sure this is a non-issue.

原來在chrome下是必須要用戶手動觸發(fā)的,否則,chrome瀏覽器會無視這段的js

但是在我們網(wǎng)站里肯定不可能加一個按鈕或者超鏈接來顯式的讓用戶授權(quán)吧,好吧, 實際上這也不是個事情,我們可以在用戶經(jīng)常點的按鈕上順便處理下這個授權(quán)就好,在chrome下是一次授權(quán)終身有用。除非你進(jìn)入設(shè)置把他禁了。

整合一下,代碼如下:

復(fù)制代碼代碼如下:function showMsgNotification(title, msg){

var Notification = window.Notification || window.mozNotification || window.webkitNotification;

if (Notification && Notification.permission === "granted") {

var instance = new Notification(

title, {

body: msg,

icon: "image_url"

}

);

instance.onclick = function () {

// Something to do

};

instance.onerror = function () {

// Something to do

};

instance.onshow = function () {

// Something to do

// console.log(instance.close);

setTimeout(instance.close, 3000);

};

instance.onclose = function () {

// Something to do

};

}else if (Notification && Notification.permission !== "denied") {

Notification.requestPermission(function (status) {

if (Notification.permission !== status) {

Notification.permission = status;

}

// If the user said okay

if (status === "granted") {

var instance = new Notification(

title, {

body: msg,

icon: "image_url"

}

);

instance.onclick = function () {

// Something to do

};

instance.onerror = function () {

// Something to do

};

instance.onshow = function () {

// Something to do

setTimeout(instance.close, 3000);

};

instance.onclose = function () {

// Something to do

};

}else {

return false

}

});

}else{

return false;

}

}

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機(jī)網(wǎng)站地址:html5桌面通知(Web Notifications)實例解析
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)