摘要:消息提示無(wú)非三種方式聲音提示,桌面彈窗和閃爍提醒。聲音提示注意聲音提示前提示已經(jīng)加載了聲音文件,有文章寫(xiě)的很多是臨時(shí)一個(gè)對(duì)象,然后這樣做是非常不好的,因?yàn)槟忝看握{(diào)用聲音的時(shí)候都會(huì)去后臺(tái)請(qǐng)求一下這個(gè)聲音文件。所以先加載出來(lái)是最好的方法。
web消息提示無(wú)非三種方式:聲音提示,桌面彈窗和title閃爍提醒。下面做一一介紹。
聲音提示注意聲音提示前提示已經(jīng)加載了聲音文件,有文章寫(xiě)的很多是臨時(shí)create一個(gè)audio對(duì)象,然后audio.src,這樣做是非常不好的,因?yàn)槟忝看握{(diào)用聲音的時(shí)候都會(huì)去后臺(tái)請(qǐng)求一下這個(gè)聲音文件。所以先加載出來(lái)是最好的方法。
function playAudio() { document.getElementById("chat-audio").play(); //pause()方法也可以暫停,具體可查html5的audio標(biāo)簽 } //調(diào)用方式 playAudio();桌面彈窗
function palyDeskNotice(theTitle, options) { if (Notification.permission !== "granted") { //先判斷一下用戶(hù)是否已經(jīng)開(kāi)啟了桌面提示的權(quán)限,如果沒(méi)有則提醒用戶(hù)開(kāi)啟 window.Notification.requestPermission(function(permission) { if (permission === "granted") showNotice(theTitle, options); }); } else { showNotice(theTitle, options); } } function showNotice(theTitle, options) { //這個(gè)就是桌面彈窗 var desknotice = new Notification(theTitle, options); desknotice.onclick = function() { //當(dāng)用戶(hù)點(diǎn)擊彈窗的時(shí)候,要定位到聊天窗口 window.focus(); desknotice.close(); }; //頁(yè)面退出時(shí)關(guān)閉提醒 window.onbeforeunload = function() { desknotice.close(); } //彈窗3秒后自動(dòng)消失 setTimeout(desknotice.close.bind(desknotice), 3000); } //調(diào)用方式 palyDeskNotice("來(lái)自xxx", { body: "內(nèi)容", icon: "images/xxx.jpg" });title閃爍提醒的原理
var NewMsgNoticeflag = false,//閃爍標(biāo)識(shí) newMsgNotinceTimer = null; function newMsgCount() { if (NewMsgNoticeflag) { NewMsgNoticeflag = false; document.title = "【?新消息】您有新的即時(shí)消息"; } else { NewMsgNoticeflag = true; document.title = "【 】您有新的即時(shí)消息"; } } //兼容性 var hiddenProperty = "hidden" in document ? "hidden" : "webkitHidden" in document ? "webkitHidden" : "mozHidden" in document ? "mozHidden" : null; var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, "visibilitychange"); var onVisibilityChange = function() { if (!document[hiddenProperty]) { clearInterval(newMsgNotinceTimer); newMsgNotinceTimer = null; document.title = "beta-即時(shí)消息系統(tǒng)"; //窗口沒(méi)有消息的時(shí)候默認(rèn)的title內(nèi)容 } } document.addEventListener(visibilityChangeEvent, onVisibilityChange); //調(diào)用方式 if (!newMsgNotinceTimer) newMsgNotinceTimer = setInterval("newMsgCount()", 200);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79915.html
摘要:前言大家可以看看上一篇用構(gòu)建一個(gè)簡(jiǎn)單的聊天室在上一篇文章中我們已經(jīng)實(shí)現(xiàn)了自我對(duì)話(huà)好友交流群聊離線(xiàn)消息等的功能。系統(tǒng)通知恭喜您連續(xù)登錄超過(guò)天,獎(jiǎng)勵(lì)積分。 本文首發(fā)公眾號(hào)與個(gè)人博客:Java貓說(shuō) & 貓叔的博客 | MySelf,轉(zhuǎn)載請(qǐng)申明出處。 前言 大家可以看看上一篇:用Java構(gòu)建一個(gè)簡(jiǎn)單的WebSocket聊天室 在上一篇文章中我們已經(jīng)實(shí)現(xiàn)了:自我對(duì)話(huà)、好友交流、群聊、離線(xiàn)消息等...
摘要:最重要的一點(diǎn),還提供了聊天機(jī)器人接口。所以我們希望可以通過(guò)聊天機(jī)器人的開(kāi)發(fā),把這些非技術(shù)人員需要查詢(xún)的需求集成進(jìn)去,然后智能解析他們發(fā)送的消息,并以友好方式自動(dòng)答復(fù)數(shù)據(jù)結(jié)果。 Zulip是什么 Zulip是移動(dòng)和桌面辦公聊天解決方案開(kāi)發(fā)商 一個(gè)強(qiáng)大的群組聊天軟件 目前已被Dropbox收購(gòu)并完全開(kāi)源(github:https://github.com/zulip/zulip) 就Zul...
閱讀 2091·2023-04-25 19:03
閱讀 1244·2021-10-14 09:42
閱讀 3423·2021-09-22 15:16
閱讀 1008·2021-09-10 10:51
閱讀 1600·2021-09-06 15:00
閱讀 2414·2019-08-30 15:55
閱讀 497·2019-08-29 16:22
閱讀 905·2019-08-26 13:49