检测另一个 Chrome 应用是否是 运行

Detect if another Chrome app is running

我有一个 Chrome 扩展程序和一个 Chrome 应用程序,它们可以通过消息相互通信。只有当 Chrome 应用程序不是 运行 时,我希望扩展程序执行某些操作。鉴于 Chrome 应用程序的 ID,我如何从 Chrome 扩展中检测它是否为 运行?

我曾尝试使用 chrome 应用程序中的关闭和暂停生命周期事件来提供帮助,但由于各种原因,这条路线似乎不太可能。还有其他检测方法吗?

类似于:

chrome.management.get(appId,function(theapp){
    if(theapp.enabled){
        // it is running
    } else {
        // it is not running
    }
});

好吧,您已经在使用 Messaging,所以如果您调用应用程序的事件页面,即使应用程序未启动,它也可能会唤醒以响应。

您将 "running" 定义为打开 windows。在活动页面,您可以check that:

chrome.runtime.onMessageExternal.addListener(function(message, sender, sendResponse) {
    /* ... */
    if (chrome.app.window.getAll().length) {
      // Launched
    } else {
      // Not launched
    }
});