在通知Firefox OS中显示图标

时间:2014-04-06 18:09:32

标签: javascript firefox firefox-os web-notifications

我希望在Notofication Firefox OS中显示一个图标,我使用此代码:

var img = './images/icon-30.png';
var notification = new Notification('Notification', { body: 'Body Notification', icon: img });
notification.addEventListener('click', function() {launchSelf();});

在桌面中,图标显示

enter image description here

但图标未显示在移动设备(Firefox OS Simulator)

enter image description here

有什么问题?任何的想法 ?感谢。

更新

如果我从这个网址得到这样的图标:https://cdn1.iconfinder.com/data/icons/app-tab-bar-icons-for-ios/30/User_login.png图标在模拟器中显示得很好,所以我认为问题就在路径上:/

注意:我使用Firefox OS 1.3,图标大小为30 x 30

5 个答案:

答案 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。