我希望在Notofication Firefox OS中显示一个图标,我使用此代码:
var img = './images/icon-30.png';
var notification = new Notification('Notification', { body: 'Body Notification', icon: img });
notification.addEventListener('click', function() {launchSelf();});
在桌面中,图标显示
但图标未显示在移动设备(Firefox OS Simulator)
中
有什么问题?任何的想法 ?感谢。
如果我从这个网址得到这样的图标:https://cdn1.iconfinder.com/data/icons/app-tab-bar-icons-for-ios/30/User_login.png图标在模拟器中显示得很好,所以我认为问题就在路径上:/
注意:我使用Firefox OS 1.3,图标大小为30 x 30
答案 0 :(得分:3)
来自tsvetko/HTML5-Desktop-Notifications
将设置为IE和通知的自定义叠加层的图标 从在Windows上运行的Chrome中显示。请注意,默认情况下图标为 不需要Chrome,Safari和Firefox,但IE是必需的。在 为了统一实现,应始终提供图标 以显示所有支持的浏览器的通知。图标 param可以是带有图标位置的String,但它也可以是 具有以下属性的对象:{" x16":仅适用于IE的图标。该 图标应为16x16px * .ico格式," x32":所有其他图标 浏览器(Windows上的Chrome,Firefox)。图标的大小应该是 32x32px,支持的格式:jpg / png / ico }。再一次 - Safari和 MacOS上的Chrome不允许设置图标。 对于Firefox Mobile, 图标始终是Firefox图标。
尝试使用16x16px或32x32px大小的图标。
答案 1 :(得分:1)
joschi70有一个可行的答案,但你可以避免这样的替换操作:
var img = window.location.origin + '/images/icon-30.png';
(我假设您已在清单中设置了原始字段。)
另外,您应该使用32x32图标进行通知(尽管Firefox OS启动器需要30x30,叹气)。
答案 2 :(得分:0)
不幸的是,我也试过没有任何成功。这似乎是Firefox OS上的一个错误,相对路径为本地文件https://bugzilla.mozilla.org/show_bug.cgi?id=980567。
答案 3 :(得分:0)
如FrédéricHarper所述,这是FirefoxOS中的一个错误。 如果你构造一个像这样的绝对路径,似乎有效:
icon: window.document.URL.replace(/^(.*\/).*/, "$1") + "img/notification_logo.png"
答案 4 :(得分:0)
我遇到了同样的问题。
我“伪造”参考的绝对网址......
我使用了这个功能:
function getURLResource(path)
{
// notice that index.html is the launchpath of your app
var url = window.location.href.replace("index.html", "");
return url + path;
};
// In your case you can do something like that:
var url = getURLResource("images/icon-30.png");
console.log(url);
// Will print something similar to this:
url = "app://<identifier>/images/icon-30.png";
希望它可以帮到你,
LuísAugustoWeber Mercado。