2

我是一组 chromebook 的“商业和教育版 Chrome”管理员,我已将其配置为在单应用信息亭模式下运行。有问题的信息亭应用程序非常简单。我所做的只是从这个页面中获取使用“webview 标签”的示例代码(没有控件,因为我们需要相关应用程序的所有整个屏幕)并更改 URL。该应用程序已完美安装在所有托管设备中。

现在的问题是,有时我们希望能够退出 kiosk 应用程序并返回到 chromebook 登录屏幕。现在唯一的方法是关闭机器,启动它,然后按 Ctrl+Alt+S 从 kiosk 应用程序启动屏幕退出。整个过程需要 30 秒加上每台机器(机队包含 50 台)。所以我们真的需要能够退出自助服务终端应用程序并返回登录屏幕(大约需要 5 秒或更短的时间)。

现在,我可以在屏幕上添加一个退出按钮(根据上面引用的页面中带有导航控件的第二个示例应用程序),但这意味着我们失去了应用程序的屏幕空间。首选的解决方案是通过击键(例如 Ctrl+Shift+L)关闭应用程序。但是在这种情况下你如何做到这一点?我尝试将传统的 onkeydown javascript 添加到包含 webview 标记的页面,这似乎被忽略了。我也尝试过使用“chrome commands API”,虽然我可以看到该快捷方式已针对扩展注册(通过单击 chrome://extensions 选项卡上的“键盘快捷方式”),但它没有任何效果。自助服务终端应用程序窗口始终保持打开状态。

有谁知道这是否可行,如果可以,怎么办?

干杯,

英里

4

1 回答 1

1

在您的 manifest.json 文件中添加此条目以创建应用程序的命令。

"commands": {
    "exit-app": {
        "suggested_key": {
            "default": "Ctrl+Shift+L"
        },
    "description": "Exit the app"
    }
}

然后你需要在你的后台脚本文件中添加代码来监听命令。当收到您在清单中创建的 exit-app 命令时,此代码将关闭应用程序中的所有窗口。

chrome.commands.onCommand.addListener(function(command) {
  switch(command) {
    case 'exit-app':
      exitApp();
      break;
  }
});

function exitApp() {
  chrome.app.window.getAll().forEach(function(win) {
    win.close();
  });
}

请注意,仅建议使用组合键,如果其他应用或 Chrome 键盘快捷键已使用该组合,则可能会被忽略。您仍然需要转到 chrome://extensions 页面上的键盘快捷键链接,并验证是否已为您的应用实际设置了组合键。

于 2015-01-08T20:06:22.043 回答