注销在单个应用程序自助终端模式下运行的托管chromebook

时间:2014-05-01 07:59:39

标签: google-chrome-extension kiosk-mode chromebook

我是一个“Chrome for Business and Education”管理员,我已配置为在Single App Kiosk mode中运行的一系列chromebook。有问题的自助服务终端应用非常简单。我所做的就是使用the example code from this page使用'webview标签'(没有控件,因为我们需要所有相关应用的整个屏幕)并更改网址。该应用已在所有托管设备中完美安装。

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

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

有没有人知道这是否可行,如果可能,怎么办?

干杯,

1 个答案:

答案 0 :(得分: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页面上的键盘快捷键链接,并验证是否已为您的应用实际设置了键组合。