【问题标题】:Event on Chrome Application RestartChrome 应用程序重启事件
【发布时间】:2016-09-28 19:02:55
【问题描述】:

我发现了如何管理 Chrome 应用程序的 onClose 事件,它可以正常关闭,但不能重新启动应用程序。 重新启动是指:右键单击 Chrom App 窗口,然后单击“重新加载应用程序”。

我的 background.js 片段

chrome.app.window.create('index.html', {
    'state': "maximized"
},
function(aWindow) {
      aWindow.onClosed.addListener(function(e) {
          console.log('close');
      });
});

当然没有像onRestart()这样的方法,根据Google App Docs

有人找到解决办法了吗?

对我来说,在开发过程中使用 “重启”“关闭” + “开始” 更舒服>

【问题讨论】:

  • 试试这个:在onClosed 中向chrome.storage.local 写入一个值,在启动时检查它(读取和删除) - 如果它不存在,则重新启动应用程序。不过,它不会让您在重新启动之前做任何事情。
  • @wOxxOm 感谢您的技巧。不是一个很好的解决方案,但无论如何,这可能会有所帮助。

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


【解决方案1】:

谢谢@Xan,我会更正他的网址为chrome.app.runtime.onLaunched

有一种方法可以在应用启动时定义应用是否重启:

chrome.app.runtime.onLaunched.addListener(function(launchData) {
    if (launchData.source == "reload") {
        console.log('restarted');
    }
    chrome.app.window.create('index.html', {
        'state': "maximized"
    });
    // ...
});

这实际上不是我问题的答案。就:重启 = 关闭 + 开始。我有兴趣在 Close 上触发一些代码,而不是在 Start 上。

无论如何,这个解决方案比 @wOxxOm 在 cmets 中提出的更干净

【讨论】:

    【解决方案2】:

    有一个 API 事件似乎符合您的描述:chrome.app.runtime.onRestarted

    在 Chrome 启动时对 Chrome 上次关闭时正在运行的应用程序触发,或者当应用程序因其他原因被请求从之前的状态重新启动时(例如,当用户撤销对应用程序保留文件的访问权限时,运行时将重新启动应用程序)。在这些情况下,如果应用没有 onRestarted 处理程序,它们将被发送一个 onLaunched 事件。

    【讨论】:

    • 整个 Chrome 重启都是这样。这适用于:右键单击->“模拟浏览器重启”但遗憾的是不适用于应用重启:(
    • @AndriiBogachenko 这实际上听起来像一个错误:函数的描述特别提到“应用程序已被请求从以前的状态重新启动”。
    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多