【问题标题】:Keep Chrome Packaged App running in background?让 Chrome 打包应用程序在后台运行?
【发布时间】:2014-06-09 16:24:00
【问题描述】:

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

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

这在应用程序运行时工作正常,但当我关闭我的应用程序时,它会停止侦听新消息。 有什么方法可以让我的应用始终收听新消息?

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

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

【问题讨论】:

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


    【解决方案1】:

    问题解决了:)

    我将所有逻辑移至在清单文件中设置为后台脚本的脚本 (background.js):

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

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

    【讨论】:

    • 如果您使用文档 (developer.chrome.com/extensions/event_pages) 中的术语,则更容易掌握这个概念。在 Chrome 应用程序中没有背景页面;相反,它们被称为“事件页面”,这是因为它们是旨在侦听事件的页面。当系统有事情要告诉他们时,系统会为您恢复被驱逐的事件页面。
    猜你喜欢
    • 2015-01-04
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2016-06-07
    • 2012-10-12
    • 2020-09-27
    相关资源
    最近更新 更多