Reactjs Can';t让通用传感器API在React应用程序中工作

Reactjs Can';t让通用传感器API在React应用程序中工作,reactjs,sensors,Reactjs,Sensors,我正在尝试在React应用程序中实现通用传感器API 当我尝试在代码中实现任何传感器时,总是会出现错误。 例如: var sensor1 = new AmbientLightSensor(); 我发现错误:找不到名称:“AmbientLightSensor” 我假设我的代码中需要一个import语句。我发现的所有示例都只包括LitElement。我甚至尝试过,但仍然得到未知的错误 在我的typescript代码中需要哪些导入语句 我需要什么npm包 下面是我正在使用的typescript

我正在尝试在React应用程序中实现通用传感器API

当我尝试在代码中实现任何传感器时,总是会出现错误。 例如:

  var sensor1 = new AmbientLightSensor();
我发现错误:找不到名称:“AmbientLightSensor”

我假设我的代码中需要一个import语句。我发现的所有示例都只包括LitElement。我甚至尝试过,但仍然得到未知的错误

  • 在我的typescript代码中需要哪些导入语句
  • 我需要什么npm包
  • 下面是我正在使用的typescript代码

    我收到一个打字脚本错误:

    /Users/scoleman/dev/current/bigbrother/src/utility/testAccel.ts(14,24): 找不到名称“AmbientLightSensor”。TS2304


    这完全取决于您使用的浏览器。我认为FireFox目前不支持它,所以我将重点关注Chrome

    首先,你可能需要为你的网站提供服务。看起来这几乎随权限的不同而不同,而且有些权限在本地主机URL上也可以使用,无论发生什么情况

    其次,对于Chrome,您必须在
    chrome://flags/#enable-通用传感器附加类
    第页

    接下来,您需要确保获得用户使用传感器的权限,然后才能实际使用它。将检查的代码段如下所示:

    (async function(){
        const {state} = await navigator.permissions.query({
            name: "ambient-light-sensor"
        });
    
        if (state !== "granted") {
            console.warn("You haven't granted permission to use the light sensor");
            return;
        }
    
        const sensor = new AmbientLightSensor();
    
        sensor.addEventListener("reading", () => {
            console.log(sensor.illuminance);
        });
    
        sensor.addEventListener("error", err => {
            console.error(err);
        });
    
        sensor.start();
    }());
    

    我能够使用polyfill在以下位置运行这些api:


    ?此外,您是否通过HTTPS进行此操作?请尝试共享所有相关代码,而不仅仅是一个表达式。试着分享一个例子。如果没有这些,就不可能知道您试图访问的代码是什么,您是如何初始化任何外部模块的,或者您是如何尝试与它交互的。@user3786170您应该将其编辑到您的问题中,而不是将其作为注释发布。
    (async function(){
        const {state} = await navigator.permissions.query({
            name: "ambient-light-sensor"
        });
    
        if (state !== "granted") {
            console.warn("You haven't granted permission to use the light sensor");
            return;
        }
    
        const sensor = new AmbientLightSensor();
    
        sensor.addEventListener("reading", () => {
            console.log(sensor.illuminance);
        });
    
        sensor.addEventListener("error", err => {
            console.error(err);
        });
    
        sensor.start();
    }());