【问题标题】:Get users' attention when browser is minimized (cross-browser desktop notifications?)当浏览器最小化时引起用户的注意(跨浏览器桌面通知?)
【发布时间】:2011-12-12 22:10:05
【问题描述】:

我正在开发一个基于浏览器的应用程序,该应用程序需要能够在用户收到传入事件(例如消息)时引起用户的注意,即使用户已将浏览器最小化。

搜索给了我一些不错的结果,但没有跨浏览器或特定于 firefox 的结果。我需要能够支持 IE 7+ 和 FF 3.6+(特定于用户群)。

以下是我看过的内容:

到目前为止,我们使用了一个简单的 javascript 警报来让托盘图标闪烁,但这会在尝试响应通知时产生额外的点击(现在总共 3 次点击,或降级 33%)。预计用户每天会这样做 20-50 次,所以很快就会变得非常烦人。

根据微软开发者网络上提供的一个例子,我制作了这个简单的原型,它在 IE 上运行良好,但它是 IE 特定的,在其他浏览器中无法运行:

<HTML>
<HEAD>
<TITLE>Popup Example</TITLE>
<SCRIPT LANGUAGE="JScript">
function timeMsg()
{
    var t=setTimeout("ButtonClick()",5000);
}

var oPopup = window.createPopup();

function ButtonClick()
{
    var oPopBody = oPopup.document.body;
    var myHeight = (window.screen.availHeight - 125);
    var myWidth = (window.screen.availWidth - 350);

    oPopBody.style.backgroundColor = "red";
    oPopBody.style.border = "solid black 1px";
    oPopBody.innerHTML = "Click outside <B>popup</B> to close.";
    oPopup.show(myWidth, myHeight, 300, 75);
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="timeMsg()">Display alert in 5 seconds</BUTTON>
</BODY>
</HTML>

非常感谢任何有关如何在不使用本地安装的可执行文件的情况下改善这种体验的建议!

【问题讨论】:

  • 人们讨厌弹出窗口,因为它们曾一度污染了整个网络。所有主要浏览器都以自动消除它们的方式构建。大多数防病毒软件还具有消除弹出窗口的插件。所以,这样做的唯一方法本质上是不像网络的。
  • 谢谢你,埃文。从用户的角度来看,我肯定有同样的看法。由于我正在开发的应用程序是 B2B,因此在口述设置方面我们有更多的灵活性。因此,如果有任何建议会触发弹出窗口阻止程序或其他可以由用户关闭的内置浏览器安全功能,那么出于此目的是可以接受的。

标签: javascript html css user-experience


【解决方案1】:

如果您可以规定用户将关闭弹出窗口阻止程序,那么就有一个“设置”页面。

该页面包含有关如何为您的网站及其/所有浏览器关闭弹出窗口阻止程序的说明。最好用图像显示要做什么。大多数浏览器都会通过将网站添加到“白名单”的方式通知弹出窗口已被抑制。

然后当他们单击按钮或执行某些其他操作时在该页面上启动一个弹出窗口。然后他们可以按照说明关闭弹出抑制。

【讨论】:

  • 如果浏览器被最小化,这会起作用吗?此外,用户似乎还需要确保弹出窗口不会作为选项卡打开。有没有控制它的js代码?
  • 不,那是所有浏览器特定的,并且是浏览器本身的一部分,而不是 html/javascript 呈现。对于这样的事情,更好的方法是创建一个实际的应用程序。我听说过关于跨平台通知的好消息,就像您在使用 Adob​​e Air 时所说的那样。我确信有人在 Java 应用程序中得到了答案。
【解决方案2】:

我们最终只使用了 Google Chrome 桌面通知,并要求我们的客户在 IE 中使用 Chrome 或 Chrome Frame。通过播放声音作为警报来增强通知。

这是关于它的文档:http://code.google.com/chrome/extensions/notifications.html

【讨论】:

【解决方案3】:

尽管它很旧:这里有一些新东西可能会解决 ~> IE9 中的问题

使用window.extern.msSiteModeSetIconOverlay api 调用。

这是一个参考

http://www.codeproject.com/Articles/117115/Using-Overlay-Icon-API-to-Make-Client-Notification

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2011-12-28
    • 2020-12-16
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多