3

我想在 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)

在此处输入图像描述

问题是什么 ?任何想法 ?谢谢。

更新

如果我像这样从 url 获取图标:https://cdn1.iconfinder.com/data/icons/app-tab-bar-icons-for-ios/30/User_login.png图标在模拟器中显示良好,所以我认为问题是路径:/

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

4

5 回答 5

3

引用自tsvetko/HTML5-Desktop-Notifications

该图标将被设置为 IE 的自定义叠加层和从 Windows 上运行的 Chrome 显示的通知。请注意,默认情况下,Chrome、Safari 和 Firefox 不需要图标,但 IE 需要。为了统一实现,应始终提供图标以显示所有支持的浏览器的通知。图标参数可以是带有图标位置的字符串,但也可以是具有以下属性的对象: {"x16": Icon for IE only。图标应为 16x16px *.ico 格式,“x32”:所有其他浏览器的图标(Windows 上的 Chrome、Firefox)。图标大小应为 32x32px,支持格式:jpg/png/ico }。再一次 - MacOS 上的 Safari 和 Chrome 不允许设置图标。对于 Firefox 移动版,

尝试使用 16x16px 或 32x32px 大小的图标。

于 2014-04-06T18:28:59.583 回答
1

joschi70 有一个有效的答案,但您可以避免这样的替换操作:

var img = window.location.origin + '/images/icon-30.png';

(我假设您已经在清单中设置了 origin 字段。)

另外,您可能应该为通知使用 32x32 图标(尽管 Firefox OS 启动器需要 30x30,叹气)。

于 2014-05-21T17:51:10.100 回答
0

As mentioned by Frédéric Harper, this is a bug in FirefoxOS. What seems to be working if you construct an absolute path like this:

icon: window.document.URL.replace(/^(.*\/).*/, "$1") + "img/notification_logo.png"
于 2014-04-12T12:12:41.190 回答
0

不幸的是,我也尝试过,但没有成功。这似乎是 Firefox OS 上的一个错误,其相对路径为本地文件https://bugzilla.mozilla.org/show_bug.cgi?id=980567

于 2014-04-07T15:25:18.757 回答
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";

希望对你有帮助

路易斯奥古斯托韦伯梅尔卡多。

于 2014-10-28T01:14:34.337 回答