【问题标题】:Unable to get system.display info in google chrome app无法在谷歌浏览器应用程序中获取 system.display 信息
【发布时间】:2020-04-25 09:10:17
【问题描述】:

我是创建 chrome 应用程序的新手,我正在尝试创建两个窗口,一个在我计算机的每个显示器/监视器上。我正在尝试使用 chrome.system.display.getInfo() 获取显示器的信息,但它只是返回未定义。

我的 manifest.json 拥有 system.display 权限,一旦我创建了一个窗口,我就会打开控制台并输入以下内容:

chrome.system.display.getInfo(function(displayInfo) { console.log(displayInfo); });

正如我之前所说,它只是返回未定义。根据我在文档中的理解,该参数应该返回一个对象数组,其中包含有关计算机上显示器的信息,但它只是返回未定义的。

如果我只是在控制台中输入 chrome.system.display,我可以看到它返回一个对象(在我在 manifest.json 中输入权限之前它没有返回)所以我不确定我是什么我失踪了。

【问题讨论】:

    标签: google-chrome-app


    【解决方案1】:

    如果没有看到更多细节,就很难知道出了什么问题。我确实注意到的一件事是没有使用 system.display 的示例,因此我更新了现有的系统信息示例以包含此 API。

    我设法做到了,没有遇到任何麻烦。您应该下载并试用示例 here 并将其用作您的应用程序的起点。

    如果您仍然遇到问题,请在此处再次询问,并提供更多详细信息(即更多代码)。

    【讨论】:

    • 感谢 Ben 更新该演示以包含显示信息。该演示似乎不适合我。它所做的只是在所有项目上说“正在加载...”。我目前在 Mac 上运行 chrome 30.0.1599.101。有什么想法吗?
    • 我没有在 Mac 上试用 30 版本,但刚刚验证了显示部分适用于 31(测试版)和 32(金丝雀)。其他部分不适用于 31,因为它们需要 dev 或 canary 版本。你可以尝试在金丝雀中运行它吗?顶部有显示部分吗?
    • 这个功能似乎是在 31 而不是 30。感谢您更新示例!
    【解决方案2】:

    听起来像一个错误,将其作为一个提交到http://crbug.com。假设您一直在尝试使用 chrome 版本 30 或更高版本(根据文档)。

    【讨论】:

      【解决方案3】:

      试试这个

      在你的函数中

      async getMemoryInfo() {
          return await new Promise((resolve, reject) => {
              chrome.system.cpu.getInfo(function(memory) {
                  console.log( 'return memory', memory)
                  resolve( memory );
              });
          }); }
      

      当你调用函数时声明异步并等待承诺

      this.secret = await this.secureStorage.getMemoryInfo();
      

      【讨论】:

        猜你喜欢
        • 2011-10-15
        • 2012-09-10
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-02-22
        • 2018-10-04
        • 1970-01-01
        相关资源
        最近更新 更多