如何检测设备在网络浏览器中是否装有陀螺仪?

领域

我正在使用THREE.js并创建一个Web应用程序,用户可以在其中旋转设备,场景也将随之移动。类似

我在区分具有陀螺仪的设备和没有陀螺仪的设备时遇到问题。

根本没有方向传感器的检测设备很容易。DeviceOrientationEvent的所有alpha,beta,gamma值均为空。但是,如果移动设备没有陀螺仪,它仍会DeviceOrientationEvent中提供alphabetagamma问题在于这些值非常嘈杂,并在场景中引起很多震动因此,我想禁用这些设备的设备方向。但是,到目前为止,我还无法找到如何确定数据是来自陀螺仪还是加速度计(这是我对数据的来源的猜测)。

我不知道它是否有帮助,但是在这里可以看到一个很好的例子(按底部的类似图标的轴;您必须在没有陀螺仪和陀螺仪的设备上看到它,才能看到两者之间的区别)。他们为没有陀螺仪的设备所做的只是更新音调滚动当您旋转手机时偏航不会更新。

因此,这绝对有可能,但经过大量搜索后,我还没有发现如何。如果有人可以帮助,那就太好了。

非常感谢。

编辑:

在刚刚有一个加速度计,类似的设备MOTOé,所有值都为空- DeviceOrientationEventrotationRate -与唯一的例外accelerationIncludingGravity但是,我之前测试过的设备没有陀螺仪,但仍为DeviceOrientationEvent提供了alpha,beta和gamma值,根据GSM Arena上的“传感器”详细信息,它似乎有2个加速度计这就是我怀疑它能够提供DeviceOrientationEvent数据的方式,尽管嘈杂看起来2个加速度计不足以提供旋转速度;)

Dhyey Shah

如果要检查是否存在陀螺仪,请检查仅陀螺仪可以测量的参数。例如,旋转速度只是陀螺仪测量的。

看一下示例代码,该代码说明是否存在陀螺仪:

var gyroPresent = false;
window.addEventListener("devicemotion", function(event){
    if(event.rotationRate.alpha || event.rotationRate.beta || event.rotationRate.gamma)
        gyroPresent = true;
});

希望这可以帮助!

编辑:

只需注意一点:在这里,使用DeviceMotionEvent是因为只能从此事件中访问rotationRate(和加速度等)。OP仅尝试了DeviceOrientationEvent,因此值得一提。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检测网络浏览器或移动设备以显示链接

来自分类Dev

在网络浏览器中向下滚动页面

来自分类Dev

在网络浏览器中查看信息页面

来自分类Dev

如何在网络浏览器的位置栏中禁用“网络搜索”?

来自分类Dev

是否可以在网络浏览器中运行python代码?

来自分类Dev

如何在网络浏览器中自动安装客户端证书?

来自分类Dev

如何在网络浏览器中单击特定按钮

来自分类Dev

如何在网络浏览器中单击特定按钮

来自分类Dev

如何在网络浏览器中制作自动填充表格?

来自分类Dev

如何在网络浏览器中搜索TypeScript类型?

来自分类Dev

如何确定我的网络浏览器是否安全?

来自分类Dev

通过网络浏览器保存后如何使用lotus notes值在网络中显示输入字段?

来自分类Dev

Javascript:是否可以在网络浏览器中显示照片之前捕获多张照片?

来自分类Dev

有没有办法在网络浏览器中获得ML Kit的功能?

来自分类Dev

当我访问某个URL时,如何下载在网络浏览器中自动下载的文件?

来自分类Dev

在网络浏览器中单击链接(如myprogram:// a / a)时如何打开电子程序

来自分类Dev

如何在网络浏览器中获取“所见即所得”(打印所见内容)?

来自分类Dev

如何制作网络浏览器?

来自分类Dev

在网络浏览器上录制声音

来自分类Dev

在网络浏览器上阻止特定的URL

来自分类Dev

如何在网络浏览器中正确查看包含汉字的htm文件?

来自分类Dev

如何在网络浏览器中正确查看包含汉字的htm文件?

来自分类Dev

如何在网络浏览器字符串中使用Python占位符

来自分类Dev

如何在网络浏览器中使用 lotusscript 按钮?

来自分类Dev

在网络浏览器中运行RStudio的多个实例

来自分类Dev

Android加载本地html文件并在网络浏览器中显示

来自分类Dev

我在网络浏览器中从URL加载html的方法不起作用

来自分类Dev

Android加载本地html文件并在网络浏览器中显示

来自分类Dev

在网络浏览器中加载Javascript Google Maps API,但在Android浏览器中未加载

Related 相关文章

  1. 1

    检测网络浏览器或移动设备以显示链接

  2. 2

    在网络浏览器中向下滚动页面

  3. 3

    在网络浏览器中查看信息页面

  4. 4

    如何在网络浏览器的位置栏中禁用“网络搜索”?

  5. 5

    是否可以在网络浏览器中运行python代码?

  6. 6

    如何在网络浏览器中自动安装客户端证书?

  7. 7

    如何在网络浏览器中单击特定按钮

  8. 8

    如何在网络浏览器中单击特定按钮

  9. 9

    如何在网络浏览器中制作自动填充表格?

  10. 10

    如何在网络浏览器中搜索TypeScript类型?

  11. 11

    如何确定我的网络浏览器是否安全?

  12. 12

    通过网络浏览器保存后如何使用lotus notes值在网络中显示输入字段?

  13. 13

    Javascript:是否可以在网络浏览器中显示照片之前捕获多张照片?

  14. 14

    有没有办法在网络浏览器中获得ML Kit的功能?

  15. 15

    当我访问某个URL时,如何下载在网络浏览器中自动下载的文件?

  16. 16

    在网络浏览器中单击链接(如myprogram:// a / a)时如何打开电子程序

  17. 17

    如何在网络浏览器中获取“所见即所得”(打印所见内容)?

  18. 18

    如何制作网络浏览器?

  19. 19

    在网络浏览器上录制声音

  20. 20

    在网络浏览器上阻止特定的URL

  21. 21

    如何在网络浏览器中正确查看包含汉字的htm文件?

  22. 22

    如何在网络浏览器中正确查看包含汉字的htm文件?

  23. 23

    如何在网络浏览器字符串中使用Python占位符

  24. 24

    如何在网络浏览器中使用 lotusscript 按钮?

  25. 25

    在网络浏览器中运行RStudio的多个实例

  26. 26

    Android加载本地html文件并在网络浏览器中显示

  27. 27

    我在网络浏览器中从URL加载html的方法不起作用

  28. 28

    Android加载本地html文件并在网络浏览器中显示

  29. 29

    在网络浏览器中加载Javascript Google Maps API,但在Android浏览器中未加载

热门标签

归档