Phone 授予对传感器的访问权限,但浏览器不支持类型 'Gyroscope'?

Phone grants access to sensor but browser doesn't support type 'Gyroscope'?

所以我正在使用 JavaScript 制作一个网络应用程序,在我的 phone 权限 API 调用中我说我是“g运行ted”访问我的陀螺仪,但是当我尝试调用 new Gyroscope({frequency: 60}) 时,我发现一个错误,提示我的浏览器不支持它。我是 运行 我的代码,通过 nodejs 设置使用 vite 来提供我的内容。

navigator.permissions.query({ name: 'gyroscope' })
.then(result => {
    if(result.state === 'granted') { // <-- this returns true
            try {
                this.gyroscope = new Gyroscope({frequency: 60});
                this.gyroscope.addEventListener('reading', e => {
                    console.log(e);
                });
                this.gyroscope.start();   
            } catch(error) {
                // Handle construction errors.
                if (error.name === 'SecurityError') {
                    // See the note above about feature policy.
                    alert('Sensor construction was blocked by a feature policy.');
                } else if (error.name === 'ReferenceError') {
                    alert('Sensor is not supported by the User Agent.');
                } else {
                    alert(error);
                }
            }
    } else {
        alert('No gyroscope or denied, computer assumed, falling back to keyboard.');
        // fallback setup here
    }
});

触发的错误就是这个Sensor is not supported by the User Agent.

我决定进一步调查,我偶然发现了这个充满传感器测试的存储库:https://intel.github.io/generic-sensor-demos/sensor-tester/build/bundled/accelerometer 当我 运行 我的 phone 上的那些时,我通过了所有测试。

那么关于使用传感器 API 我在这里遗漏了什么?我试图查看上面存储库中的代码,但我终其一生都无法弄清楚它们是如何工作的,而我却做不到。

对于以后遇到此问题的任何人来说,问题是传感器 API 需要 SSL 才能为 一切 工作。因此,为了解决我的问题,我继续使用 mkcert 制作一个有效的 key.pemcert.pem 文件以用于我的本地网络服务器设置。

这也是使 SSL 适用于任何需要 SSL 的本地主机 Web 开发设置的方法。