【发布时间】:2014-02-05 15:10:41
【问题描述】:
似乎我们无法在网络工作者中获取传感器数据。我想知道它背后的原因。用例是我正在考虑在工作线程中获取地理位置数据,并且只将处理后的版本发送到主线程。
对于 GPS,post 表示工作线程不支持它(没有给出原因)。我仔细检查了一下,网络工作者不支持 navigator.geolocation 。对于加速器和陀螺仪,我们有 DeviceOrientationEvent 和 DeviceMotionEvent。但是我们需要通过window对象来使用它们,这个对象是工作线程不可用的。同样的情况也适用于环境光事件。
所以我的问题是:
- 为什么 web worker 不支持 navigator.geolocation?我看不出有任何理由在工作线程中阻止它。我认为应该没有线程安全或安全问题。
- navigator.geolocation 是否属于 navigator?这看起来像一个愚蠢的问题。但是我不能很快在网上找到一个很好的解释......网络工作者可以访问导航器对象。我很困惑为什么不支持navigation.geolocation。
- 为什么我们没有来自加速器和陀螺仪的原始传感器读数?我知道抽象事件很有用。但是在某些情况下,我们希望使用原始数据进行处理。我发现 PhoneGap 提供了访问原始传感器数据的方法,例如,通过navigator.accelerometer。但我的理解是这样的API不属于标准化的HTML规范。
- 决定工作线程中是否应支持通用传感器读取的相关设计决策是什么?根据W3C Device APIs Working Group,HTML 中的一般传感器读取支持目前被搁置。看到当前的传感器支持(gps、加速器、陀螺仪),我想我们会得到抽象的 DOM 事件。并且很可能通过导航器对象读取原始传感器数据。
【问题讨论】:
标签: html web gps accelerometer sensors