Javascript 检测是否有其他Chrome应用正在运行

Javascript 检测是否有其他Chrome应用正在运行,javascript,google-chrome-extension,google-chrome-app,Javascript,Google Chrome Extension,Google Chrome App,我有一个Chrome扩展和一个Chrome应用程序,可以通过消息传递相互通信。我希望只有当Chrome应用程序未运行时,扩展才能执行某些操作。给定Chrome应用程序的Id,如何从Chrome扩展中检测它是否正在运行 我曾尝试使用chrome应用程序中的关闭和暂停生命周期事件来提供帮助,但由于各种原因,这一途径似乎不可能实现。是否有其他检测方法?类似于: chrome.management.get(appId,function(theapp){ if(theapp.enabled){

我有一个Chrome扩展和一个Chrome应用程序,可以通过消息传递相互通信。我希望只有当Chrome应用程序未运行时,扩展才能执行某些操作。给定Chrome应用程序的Id,如何从Chrome扩展中检测它是否正在运行

我曾尝试使用chrome应用程序中的关闭和暂停生命周期事件来提供帮助,但由于各种原因,这一途径似乎不可能实现。是否有其他检测方法?

类似于:

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

好吧,您已经在使用消息传递,所以如果您呼叫该应用程序,该应用程序的事件页面可能会被唤醒并进行应答,即使该应用程序尚未启动

您将“运行”定义为打开窗口。从事件页面,您可以:


定义应用程序的“运行”。窗户开着吗?是的,窗户开着。我已经添加了一个暂时有效的黑客(只是在我的特殊情况下,或者我愿意分享),但如果有更好的方法,我会使用它。我的理解是,启用和禁用对应于是否选中应用程序中的启用复选框chrome://extensions 页面,而不是它是否正在运行。这不是真的吗?好主意!谢谢
chrome.runtime.onMessageExternal.addListener(function(message, sender, sendResponse) {
    /* ... */
    if (chrome.app.window.getAll().length) {
      // Launched
    } else {
      // Not launched
    }
});