让Chrome Packaged App在后台运行?

时间:2014-04-24 11:45:31

标签: google-chrome google-chrome-extension serial-port google-chrome-app

我正在尝试构建Chrome应用和/或扩展程序以与串行设备通信(使用https://developer.chrome.com/apps/serial),以用于在网页上显示来自设备的数据。

我创建了一个可以从我的设备上读取消息的应用,但我现在需要将这些消息发送到我的网页。我的计划是创建一个与我的应用程序通信的扩展程序,然后更新我的网页。我的扩展程序使用“chrome.runtime.sendMessage”向应用程序发送消息,然后我的应用程序响应包含来自我的设备的信息的消息。

当应用程序运行时,此功能正常,但当我关闭应用程序时,它会停止侦听新消息。 有没有办法让我的应用程序始终收听新消息?

我从一开始就创建应用程序(而不仅仅是扩展程序)的原因是因为不允许扩展程序与串行设备通信。除了构建应用程序和扩展程序之外,还有其他方法可以实现我想要的目标吗?

更新
我刚刚意识到我可以使用“chrome.runtime.sendMessage”从我的网页直接向应用发送消息,所以我猜不需要扩展。然而,我仍然需要应用程序一直在收听消息。

1 个答案:

答案 0 :(得分:3)

问题解决了:))

我将所有逻辑移到了脚本(background.js)中,该脚本被设置为清单文件中的后台脚本:

"app": {
    "background": {
      "scripts": [ "background.js" ]
    }
  },

在background.js中,我在chrome.app.runtime.onStartup.addListener(function() {上设置了所有内容(包括消息监听器)。