成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

web聊天系統(tǒng)的消息通知問(wèn)題

Soarkey / 2104人閱讀

摘要:消息提示無(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

相關(guān)文章

  • 用Java構(gòu)建一個(gè)簡(jiǎn)單WebSocket聊天項(xiàng)目之新增HTTP接口調(diào)度

    摘要:前言大家可以看看上一篇用構(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)消息等...

    vvpvvp 評(píng)論0 收藏0
  • Zulip聊天機(jī)器人Python開(kāi)發(fā)

    摘要:最重要的一點(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...

    ghnor 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<