如何在Firefox OS中实现通知?

时间:2013-03-20 13:23:19

标签: html5 notifications firefox-os

我有一个即时消息应用程序几乎完成我唯一缺少的是你的firefox通知。和API一样?

2 个答案:

答案 0 :(得分:9)

目前尚不清楚您是否在通知API或推送通知API之后,所以我将讨论这两者。

首先,通知“API”(我不确定它是否已被重命名为API,我担心它现在被称为“通知”)。您可以使用mozNotification创建新的通知对象,并使用show显示它们:

var notification = navigator.mozNotification;

var n = notification.createNotification("Title", "Body", "optional_icon.png");
n.show();

在这两个链接上,您可以更好地了解可以使用此功能。

请务必请求使用此权限(将其添加到manifest.webapp):

"permissions": {
    "desktop-notification":{}
}

为了方便起见,我做了一个demo app。看看它是如何工作的,以及我所做的改变。

警告:这与Web Notifications不同。

Push API已在Mozilla Wiki上列出,但它正在进行AFAIK。您可以在Mozilla Wikigithub (server side stuff)Gecko implementation bug上关注此特定API的新闻。

还有另一个API,SimplePush API,现在似乎正在运行。不幸的是,我对此并不了解。但至少文档看起来还不错。

不幸的是,我不知道这些API与W3C's Push API的关系。我担心Push API与标准有些相关,尽管我不确定。在这些API的情况下,我不会依赖Mozilla之外的任何其他文档。

答案 1 :(得分:1)

对于基于服务器的推送通知,请参阅包含实施示例的Simple Push这在Firefox OS(/ Boot2Gecko)1.1中可用。但不是1.0 (在所有当前发布的设备上)。 另请注意,您需要一台真实的设备才能在模拟器中使用。

根据上述链接,简单推送本身并不难实现。不过,您需要注意以下几点:

  • 您需要自己的服务器,按需启动Firefox的服务器
  • 设备上收到的推送不包含任何信息(这意味着您必须在收到推送后查询所需信息)
  • 收到的推送是静默且不可见的 - 这意味着您必须按照above
  • 所述自己显示桌面通知
  • 由于bug
  • ,推送端点必须与清单中的launch_path页面相同(这意味着您必须将所有逻辑放在一个页面中)
  • 确保您在收到推送后acquire a wake lock并在工作完成后将其释放 - 这样设备就不会陷入深度睡眠状态,并且推送处理暂停在中间

可以使用MozAlarmsManager在Boot2Gecko 1.0上构建类似的功能。