国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 軟件技巧 > 正文

Web IM中桌面通知實戰技巧

2024-07-16 17:58:59
字體:
來源:轉載
供稿:網友

  桌面通知顧名思義能夠給我們的日常工作和學習帶來很大的幫助,但是目前支持桌面通知功能的瀏覽器只有Chrome5+。本文主要介紹Web IM中桌面通知實戰技巧,下面一起來瞧瞧吧!
  在實際使用的過程中,應該盡量減少通知功能對用戶的干擾,最大程度的減少通知功能的出現,這就需要解決以下幾個問題:
  1. 收到多條消息時確保只出現一條通知;
  2. 當用戶處于IM出現的頁面中時(頁面處于Focus狀態)將不出現通知;
  3. 當用戶使用多Tab開啟多個存在IM的頁面時,只要有一個頁面處于Focus狀態將不出現通知;
  此外,還需要解決一個便利性問題
  4. 如何讓用戶點擊通知浮動層即可定位到具體的聊天窗口
  1. 只彈出一個通知窗口
  這個問題比較好解決,因為通知對象擁有一個名為"replaceId"的屬性。指定該屬性后,只要是相同replaceId的通知窗口彈出,都會覆蓋之前彈出的窗口。在實際項目中是給所有的彈出窗口賦了一個相同的replaceId。不過需要注意的是,這種覆蓋行為只在同域下有效。
  2. 確保頁面Focus時不彈出通知窗口
  這個問題主要是在于判斷瀏覽器窗口是否處于Focus狀態,目前除了監聽window的onfocus和onblur事件之外,貌似沒有更好的方式。在項目中就是通過這種方式來記錄窗口的Focus狀態,然后當消息到達時根據Focus狀態來判斷是否彈出窗口。   使用該方法需要注意的地方是,事件注冊的事件點應該盡可能的靠前,如果注冊太晚則當用戶打開頁面后再離開就會很容易出現狀態的誤判。
  3. 識別多Tab的Focus狀態
  多頁面間的狀態共享可以通過本地存儲來實現:
  瀏覽器窗口Focus時修改本地存儲中指定key的值為"focus"
  瀏覽器窗口Blur時修改本地存儲中指定key的值為"blur"
  需要注意的是,Chrome下從一個Tab切換到另一個Tab時,Blur有可能比Focus后寫入存儲中,因此修改Focus狀態時需要異步處理。   實現以上狀態共享后,新的消息到達后,只需要查看本地存儲中’kxchat_focus_win_state’的值是否為blur,如果為blur才彈出窗口。
  4. 通知窗口的事件響應
  通知窗口支持onclick等事件響應,而響應函數中的作用范圍屬于創建該窗口的頁面。如下代碼:   在onclick的響應函數中訪問的window對象即屬于當前創建頁面,因此可以很方便的與當前頁面進行交互。以上代碼便實現了點擊彈出窗口會跳轉到對應的瀏覽器窗口和打開IM窗口。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 葫芦岛市| 神池县| 兴业县| 同仁县| 牡丹江市| 平江县| 当雄县| 铜川市| 北海市| 尤溪县| 常宁市| 三江| 霍山县| 凤冈县| 都江堰市| 栾川县| 深泽县| 三亚市| 连江县| 耿马| 桐梓县| 建德市| 万盛区| 米易县| 张家口市| 石阡县| 若羌县| 抚宁县| 达拉特旗| 南宫市| 许昌市| 平果县| 修文县| 苍山县| 乌拉特后旗| 江陵县| 东乌珠穆沁旗| 林芝县| 九江县| 宾川县| 定襄县|