18

我编写的 Chrome Kiosk 应用程序只有在 Chromebox 上以 Kiosk 模式运行时才会出现问题。在我登录 Chromebox 后手动启动应用程序时,它运行良好。此外,在我的开发机器上测试应用程序时,一切正常。

如何将远程调试会话、写入远程日志记录信息或以任何其他方式从 Chromebox 上的 Kiosk 应用程序获取调试信息到我的开发机器?

4

3 回答 3

17

如果您使用 --remote-debugging-port=9222 选项运行 Chrome,它将提供对 DevTools 的访问权限http://localhost:9222/。现在,在以 Kiosk 模式运行的 Chromebox 上,如果没有一些额外的步骤,这并不是那么有用(甚至可能):

  1. 将您的设备置于“开发者模式”。说明因硬件型号而异。
  2. 使文件系统可写,以便您可以修改 chrome 的命令行参数。
  3. 将“--remote-debugging-port=9222”添加到/etc/chrome_dev.conf.
  4. killall chromepkill chrome使命令行更改生效。
  5. 使用 ssh 登录 Chromebox 并在本地转发端口:ssh -L9222:127.0.0.1:9222 chronos@<chromebox ip>
  6. 从本地计算机访问 DevToolshttp://localhost:9222/

鉴于所有这些,如果您可以在非信息亭模式下解包运行它,则更容易调试信息亭应用程序。

于 2014-12-13T02:04:11.320 回答
1

为了将来节省其他时间,我发现在尝试调试在 kiosk 模式下运行的应用程序时,您不需要以 chronos 用户身份登录。

事实上,我发现当设备在非托管信息亭模式下运行应用程序时,我根本无法以 chronos 用户身份登录,但是,我可以在登录操作系统时进行登录。

相反,我不得不以 root 用户身份登录。然后,我能够按照 Reilly Grant 的记录设置隧道,并通过 localhost:9222 连接到远程调试器。

这意味着您需要对 Reilly Grant 的说明进行的唯一更改是在第 5 步中更改ssh -L9222:127.0.0.1:9222 chronos@<chromebox ip>ssh -L9222:127.0.0.1:9222 root@<chromebox ip>

于 2016-12-14T16:25:38.410 回答
0

我知道这应该是一个评论,但我坐在 49 代表。对于那些尝试使用最新版本的 chrome 的人,你最终可能会得到一个无法正常工作的远程控制台。要解决此问题,您必须打开本地调试器并在其控制台中输入以下内容:(参考:https ://github.com/Adobe-CEP/CEP-Resources/issues/78 )

isEnterKey = function(event){
  return event.key ==  'Enter' && event.keyCode == 13;
};

Object.defineProperty(KeyboardEvent.prototype, 'keyIdentifier', {
    get: function() {
        switch (this.key) {
            case "ArrowDown":
                return "Down";
            case "ArrowLeft":
                return "Left";
            case "ArrowRight":
                return "Right";
            case "ArrowUp":
                return "Up";
            case "Escape":
                return "U+001B";
            case "Tab":
                return "U+0009";
            default:
                return this.key;
        } 
    }
});
于 2019-02-27T23:00:05.713 回答