javascript - chrome.enterprise.deviceAttributes.getDirectoryDe​​viceId 不适用于已注册的 chromebox

标签 javascript reactjs google-chrome-extension google-chrome-app google-chrome-os

我正在 ReactJS 中构建一个 chrome kiosk 应用程序,它需要访问正在运行的设备的 deviceId 以进行日志记录。我使用以下代码来调用 chrome.enterprise.deviceAttributes.getDirectoryDe​​viceId:

const getDeviceId = (cb) => {
  if (!chrome.enterprise) {
    if (cb) {
      cb();
    }

    return;
  }

  // get device id
  chrome.enterprise.deviceAttributes.getDirectoryDeviceId(assetId => {
    deviceId = assetId;

    if (cb) {
      cb();
    }
  });
};

然后,通过执行以下操作来调用该函数:

getDeviceId(() => {
  debug('Got device id: %s', deviceId);
});

现在,我知道此代码只能在已注册的 ChromeOS 设备上运行。我还知道 chrome.enterprise.deviceAttributes 仅适用于按策略预安装的扩展程序。因此,我只能在将其提交到 ChromeOS 商店并通过开发人员仪表板安装后对其进行测试。

长话短说:上面的代码不会返回 deviceId,这会导致我所有的 api 调用失败,我无法真正调试它,因为它是作为信息亭应用程序安装的。我想知道这里是否有人可以告诉我我做错了什么以及如何解决这个问题。

提前致谢!

最佳答案

我怀疑您可能没有在 list .json 中声明“enterprise.deviceAttributes”权限:

  "permissions": [
    "enterprise.deviceAttributes"
  ],

该权限列在 API 页面的顶部:https://developer.chrome.com/extensions/enterprise_deviceAttributes#intro

我在 Chrome 应用程序中创建的内容窗口内运行此 JavaScript,并且运行良好:

chrome.enterprise.deviceAttributes.getDirectoryDeviceId(deviceId => {
    let publicDeviceId = document.getElementById('publicDeviceId');
    publicDeviceId.innerText = deviceId;
});

它返回管理控制台 > 设备管理 > Chrome 设备 > 设备详细信息页面中 Chrome 设备详细信息页面上显示的值 - 部分:硬件和操作系统 > 目录 API ID。它是一个 GUID。

该 API 确实适用于 Chrome 应用(这是我测试过的唯一地方),尽管该 API 的文档会重定向到扩展程序页面。

关于javascript - chrome.enterprise.deviceAttributes.getDirectoryDe​​viceId 不适用于已注册的 chromebox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117315/

相关文章:

javascript - 我可以使用 Javascript 从文档中删除字体大小声明吗?

相当于 php 的 parse_url 的 Javascript

javascript - Chrome 扩展程序中出现错误 "Cannot read property ' style' of null"

javascript - 数据表数字排序问题

javascript - 如何使用以 "a"开头或以 "b"结尾的 CSS 选择器对元素进行模式匹配

javascript - 如何正确定义javascript原型(prototype)绑定(bind)?

javascript - 使用 Webpack 时无法将 CSS 链接到 JSX

javascript - 如何为动态表单字段设置initialValue( Ant 设计)?

html - CSS:背景图像大于整个页面

javascript - 按字符串数组对对象数组进行排序