错误时在 html 通知中添加默认图标

Posted

技术标签:

【中文标题】错误时在 html 通知中添加默认图标【英文标题】:adding default icon in html notifications on error 【发布时间】:2015-07-02 11:29:51 【问题描述】:

我正在使用 html5 通知为我的 Web 应用程序创建通知。

我对通知代码使用如下选项:-

var options = 
            body: text,
            icon: encodeParams("/photo?num="+snum+"&id="+cnum),
            dir : "auto",
            tag : cnum,
        ;

定义了所有的文本、snum 和 cnum。

图标是从服务器中检索出来的,并且工作正常。 但是,如果该图标在服务器上不存在 :: 通知图标将变为空白。

如果找不到图片,我想添加一个默认图标。

有人可以在没有额外 HTTP 调用的情况下帮助解决这个问题吗?

【问题讨论】:

【参考方案1】:

最简单的方法是,如果没有找到请求的,则让服务器端发送一个默认值

或者,使用 javascript 预加载所有图像,这样您就可以检测到不存在的图像,然后在显示通知时将它们替换为默认图像 - 但是,这可能会违反您的“没有额外的 http 调用”条件

【讨论】:

也许我的语言不优雅,但这是一个答案 我知道我的“有服务器......”可能在哪里混淆了,这听起来像是一个破碎的英语问题,而不是一个糟糕的英语建议:p 谢谢!会调查这个:)【参考方案2】:

您应该在图像元素上使用 Base64 CSS 背景图像,这样如果图像请求失败,您的默认图像将从一开始就在那里。这也将处理额外的 HTTP 请求。

例如:

img 
   background-image: url(data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7);
   background-size: contain;

<img src="http://placehold.it/100x100/000000">

有关 base64 图像编码及其在 CSS 中的使用的更多信息,请参阅 https://css-tricks.com/data-uris/

【讨论】:

以上是关于错误时在 html 通知中添加默认图标的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 推送通知到达时在应用程序图标上显示徽章编号

Firebase Cloud Messaging - 更改 Android 上 Web 通知的默认 Chrome 图标

Urban Airship:默认状态栏通知的自定义图标

设置中的推送通知图标

解析 PHP 文件时在浏览器中启用错误

Android/MIUI 在通知栏中设置小图标不起作用?显示的默认图标