Web IM中桌面通知实战技巧

  桌面通知顾名思义能够给我们的日常工作和学习带来很大的帮助,但是目前支持桌面通知功能的浏览器只有Chrome5+。本文主要介绍Web IM中桌面通知实战技巧,下面一起来瞧瞧吧!
  在实际使用的过程中,应该尽量减少通知功能对用户的干扰,最大程度的减少通知功能的出现,这就需要解决以下几个问题:
  1. 收到多条消息时确保只出现一条通知;
  2. 当用户处于IM出现的页面中时(页面处于Focus状态)将不出现通知;
  3. 当用户使用多Tab开启多个存在IM的页面时,只要有一个页面处于Focus状态将不出现通知;
  此外,还需要解决一个便利性问题
  4. 如何让用户点击通知浮动层即可定位到具体的聊天窗口
  1. 只弹出一个通知窗口
  这个问题比较好解决,因为通知对象拥有一个名为"replaceId"的属性。指定该属性后,只要是相同replaceId的通知窗口弹出,都会覆盖之前弹出的窗口。在实际项目中是给所有的弹出窗口赋了一个相同的replaceId。不过需要注意的是,这种覆盖行为只在同域下有效。
  2. 确保页面Focus时不弹出通知窗口
  这个问题主要是在于判断浏览器窗口是否处于Focus状态,目前除了监听window的onfocus和onblur事件之外,貌似没有更好的方式。在项目中就是通过这种方式来记录窗口的Focus状态,然后当消息到达时根据Focus状态来判断是否弹出窗口。   在onclick的响应函数中访问的window对象即属于当前创建页面,因此可以很方便的与当前页面进行交互。以上代码便实现了点击弹出窗口会跳转到对应的浏览器窗口和打开IM窗口。