最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

html5桌面通知(Web Notifications)實(shí)例解析

  發(fā)布時(shí)間:2014-07-07 11:11:28   作者:佚名   我要評(píng)論
這篇文章主要為大家介紹了html5桌面通知(Web Notifications)實(shí)例,對(duì)于進(jìn)行html5網(wǎng)站建設(shè)非常有用!需要的朋友可以參考下

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

這里有個(gè)不錯(cuò)的demo:html5 web notification demo

從上面這個(gè)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 這句代碼的功能就是向用戶請(qǐng)求權(quán)限允許。

通過(guò)以上的例子,基本思路我們已經(jīng)有了,首先加載文檔時(shí),就向用戶請(qǐ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;
}
});
}
});

火狐下 驗(yàn)證是通過(guò)的,但是在chrome下總是出不來(lái),后來(lái)發(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.

原來(lái)在chrome下是必須要用戶手動(dòng)觸發(fā)的,否則,chrome瀏覽器會(huì)無(wú)視這段的js

但是在我們網(wǎng)站里肯定不可能加一個(gè)按鈕或者超鏈接來(lái)顯式的讓用戶授權(quán)吧,好吧, 實(shí)際上這也不是個(gè)事情,我們可以在用戶經(jīng)常點(diǎn)的按鈕上順便處理下這個(gè)授權(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;
}

}

相關(guān)文章

最新評(píng)論

边坝县| 渭源县| 璧山县| 包头市| 庆城县| 江川县| 吉林省| 中超| 紫阳县| 麦盖提县| 大悟县| 洱源县| 台江县| 新巴尔虎右旗| 平江县| 贵溪市| 筠连县| 新余市| 南和县| 合江县| 永城市| 澄迈县| 邵阳市| 团风县| 阳信县| 内江市| 拜城县| 二手房| 界首市| 营口市| 长垣县| 灵璧县| 东兴市| 漳平市| 盐边县| 湘乡市| 永新县| 富源县| 湟源县| 五指山市| 罗城|