我正在尝试调试基于Chrome App Sample WebSocket Server的打包应用。我第一次使用Chrome应用程序时要善待。
当我从Google Dev Editor运行应用程序时,我可以随意打开和关闭应用程序。但是,从Chrome App Store安装时,重新打开应用程序会导致Chromebook =屏幕崩溃几秒钟,然后关闭所有程序。
我不确定从哪里开始调试这个,因为我的扩展程序几乎都是从应用程序示例中复制的,它也可能是一个错误。我确实发现,如果我手动终止仍在shift + esc任务管理器中的进程,我可以重新启动应用程序而不会崩溃。
我看了一下在关闭应用程序时运行的方法。我想我不能用:
chrome.runtime.onSuspend.addListener(function() {
// kill process here
});
但也许:
chrome.app.window.onClosed.addListener(function (){
// kill process here
});
只要我有权访问进程并知道进程ID,就可以使用。我确实在这个主题上找到了这个blog post和gist,建议可以这样做:
var tab_id;
var processes = (chrome.processes !== undefined) ? chrome.processes : chrome.experimental.processes;
chrome.browserAction.onClicked.addListener(function (tab) {
tab_id = tab.id;
processes.getProcessIdForTab(tab.id, function (processId) {
if (!isNaN(parseFloat(processId)) && isFinite(processId)) {
processes.terminate(processId);
}
});
});
processes.onExited.addListener(function (id, exitType, exitCode) {
if (exitType == 2 && exitCode == 15) {
chrome.tabs.reload(tab_id);
}
});
但是我无法访问代码中显示的进程(猜测它太旧了)。
问题:
是否可以访问从Chrome应用程序运行的进程来尝试终止进程?如果不是最好解决这个问题呢?
谢谢!