3

我有一个几乎完整的即时消息应用程序,我唯一缺少的是为您提供的 Firefox 通知。API 也一样?

4

2 回答 2

9

不清楚您是在使用 Notifications API 还是 Push Notifications 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":{}
}

为了方便起见,我制作了一个演示应用程序。看看它是如何工作的,以及我所做的更改。

警告:这与Web Notifications不同。

Push API已在 Mozilla Wiki上列出,但 AFAIK 正在进行中。您可以在Mozilla Wikigithub(服务器端的东西)Gecko 实现错误上关注有关此特定 API 的新闻。

还有另一个 API,SimplePush API,现在似乎可以工作了。不幸的是,我对此知之甚少。但至少文档看起来相当不错。

不幸的是,我不知道这些 API 与W3C 的 Push API有什么关系。恐怕Push API与标准有些相关,尽管我不确定。对于这些 API,我不会依赖除 Mozilla 之外的任何其他文档。

于 2013-03-20T21:15:27.600 回答
1

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

鉴于上述链接,Simple Push 本身并不难实现。不过,您需要注意以下几点:

  • 您需要自己的服务器来按需触发 Firefox 的服务器以进行推送
  • 设备上收到的推送不包含任何信息(这意味着您必须在收到推送后查询所需的信息)
  • 收到的推送是无声且不可见的 - 这意味着您必须自己显示桌面通知,如上所述
  • 由于存在错误,推送端点必须与清单中的页面相同launch_path(这意味着您必须将所有逻辑放在一个页面中)
  • 确保您在收到推送后获得唤醒锁,并在工作完成后释放它 - 这样设备就不会进入深度睡眠,并且您的推送处理会在其中暂停

It is possible to build similar functionality on Boot2Gecko 1.0 using MozAlarmsManager.

于 2013-06-22T14:45:17.140 回答