问题标签 [devicemotion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
51 浏览

ios - 绝对旋转率

在 iOS 上CMDeviceMotion,我可以获取设备CMAttitude及其CMRotationRate. 旋转速率位于本地设备坐标系 (x,y,z) 中。

对于给定的CMAttitude,如何确定绝对旋转速率,即设备在初始定义的世界坐标系 (X,Y,Z) 中的旋转速率CMAttitudeReferenceFrame

例如:假设我CMMotionManager使用xMagneticNorthZVertical参考框架进行初始化。如何计算绕 X 轴(世界磁北)和 Z 轴(世界垂直)的旋转速率?

0 投票
1 回答
372 浏览

javascript - 如何使用设备运动使画布动画随手机移动

我已经设法为我的画布创建了一个旋转动画,但现在我想添加一个设备运动的事件处理程序,以使我的画布在我移动手机时移动。例如:现在我将画布平移到屏幕的中间点并开始旋转。当我将手机向左移动时,我希望我的中间点向左移动,反之亦然,因为我将手机向右移动。

我尝试将事件处理程序添加到我的移动函数并使用 event.accelerationIncludingGravity.x 来设置画布翻译的起点,但它不起作用。我认为有问题的部分是cxt.translate(c.width / 2 - x, c.height / 2 - y); 有人可以告诉我如何做到这一点吗?这是我的代码:

0 投票
1 回答
188 浏览

javascript - 在 Xcode 的 WKWebView 中跟踪 Deive Motion

我正在我的 Xcode 应用程序中加载一个带有 WKWebView 的网站,并且该网站需要设备运动才能运行。在 safari 中,网站请求访问设备运动(ios 13 功能),但在 Xcode 中,它不会请求访问,也不会开始跟踪运动数据。使用应用商店中的 WebView 应用程序,我可以在 WKWebView 中加载同一网站,并且动作是轨道,这意味着它绝对是可能的。非常感谢我能在此功能上获得的任何帮助。提前致谢!

这是更多信息:

ios 13 设备运动请求 JS 代码:

这是一个网站,用于演示适用于 WebView 应用程序的设备运动,但不适用于基本的 WKWebView:

https://www.audero.it/demo/device-orientation-api-demo.html

0 投票
2 回答
2084 浏览

ios - WKWebView iOS 13 中的 DeviceMotion 和 DeviceOrientation

我想在 iOS 13+中使用DeviceMotionDeviceOrientation事件。WKWebView我正在使用下面的代码

该网页在 safari 和 chrome 中都可以使用,并要求允许使用设备动作,如下所示

图片:

在 chrome 上请求权限

状态将根据我单击允许或取消更新

在此处输入图像描述

但是在我正在使用的应用程序中WKWebView,当我按下询问权限按钮时,它没有显示任何询问权限的警报,而是直接将状态设置为Denied。(如下所示)。

在此处输入图像描述

如果我做错了什么或从WKWebView侧面需要任何额外的东西,请指导我。这是我的 iOSWKWebView代码。我不知道是否需要更改WKUserContentController或更改WKWebViewConfiguration

0 投票
1 回答
372 浏览

android - 在 Android 设备上使用 Angular Ionic 加速计事件频率在前 5 分钟减慢

我在用

使用带有 Angular 的 Ionic 访问 Android 设备上的加速度计数据。在应用程序内部时,该事件以 60 Hz 的频率工作,但当应用程序切换到后台时,前 5 分钟频率下降约 9-10 Hz,并且在某个时间点仍处于后台时,它会回到 60 Hz并无限期地保持这种状态。

我也在使用后台插件

我尝试在 config.xml 中使用相应条件将 disableBatteryOptimizations() 添加到后台插件,但仍然没有运气。

我还尝试了 Device Motion 和 Gyroscope 的插件,但它们的行为相同。

我应该如何防止频率变慢?以前有没有其他人遇到过这个问题?

0 投票
1 回答
1615 浏览

javascript - DeviceMotionEvent.requestPermission() 不是 Chrome + Safari 桌面上的功能

在 iOS 12.2 中,Apple 默认从移动 Safari 中删除了运动传感器。Chrome 最近也做了类似的事情。在 iOS 13 中,添加了一个 requestPermission 弹出窗口。

该解决方案非常适用于移动浏览器,并且现在正在运行。

我现在在非移动浏览器(Edge Chromium 和 Chrome)上遇到问题

未捕获的类型错误:window.DeviceMotionEvent.requestPermission 不是 game.start_handling 中的函数(game.js:706)

我假设我需要在调用它之前检查方法/函数是否存在。有什么建议么?

0 投票
1 回答
360 浏览

ios - 如何在 swift 5 中创建包含传感器数据的 csv 文件?

我的视图中有 3 个标签,这就是我获取传感器数据并将其写入标签中的方式:

现在我想将该日期保存在 csv 文件中。我怎样才能做到这一点?

我已经尝试过这个答案中提出的解决方案:如何记录传感器数据并导出到 CSV?,但它对我不起作用。

0 投票
1 回答
451 浏览

javascript - iOS 上的 Devicemotion 事件

我想在我的网页上为 Android 和 iOS 平台实现移动设备“摇晃”事件。

因此,我立即找到了由 Alex Gibson 编写的唯一一个脚本。

经过一些测试,我发现它可以完美地在 Android 手机上运行。不幸的是,在 iPhone 上它不起作用。

根据MDN web docs,使用devicemotion事件的脚本没有问题。

此脚本在codeopen上没有 iOS 错误,只是无法正常工作。

有什么方法可以克服这个问题吗?

UPD

我发现这篇文章描述了 iOS 13 对devicemotion事件的要求,所以现在你必须请求它的权限。

但它也不起作用。

无论如何,它都会在没有任何许可请求的情况下返回“拒绝”状态。

0 投票
1 回答
170 浏览

swift - 应用程序不会在后台接收 DeviceMotion 更新 (WatchOS 6)

我正在为 Apple Watch 开发一个应用程序,该应用程序通过 DeviceMotion 获取加速度计、陀螺仪数据,并通过 HKWorkout 获取心率。

在应用程序停留在前台之前,一切正常。但是,当它进入非活动状态时(当用户降低手腕时),它会工作一段时间,但在某个点它会停止。此外,当应用程序进入后台时,应用程序停止收集新的 DeviceMotion 更新,但我认为心率观察器继续工作,因为绿色 LED 仍然亮着。

我用于 DeviceMotion 的代码是:

我用于心率的代码:

由于Apple文档状态(https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings

当锻炼会话处于活动状态时,您的应用程序可以继续在后台运行。这使您的应用程序可以监控用户并在整个活动中收集数据。此外,它还能确保您的应用在用户查看手表时出现。

我认为在这些情况下没有必要管理应用程序的行为。但是,似乎必须做点什么。在后台状态(和非活动状态)收集新的 DeviceMotion 数据的最佳方法是什么?

0 投票
0 回答
36 浏览

javascript - devicemotion api 设备坐标系

DeviceMotionEvent API 似乎提供了参考世界坐标系的加速度数据。

x- 表示从西到东轴的 x 轴上的加速度

y- 表示从南到北的 y 轴上的加速度

z- 表示从下到上轴 z 轴上的加速度

但是,我想参考设备的坐标系来使用这些数据。

这个 API 是否提供这种格式?

否则,是否可以通过从DeviceOrientationEvent(可能不提供“绝对”数据)获取方向来转换此数据?

absolute- 一个布尔值,指示设备是绝对提供方向数据(即,参考地球坐标系)还是使用设备确定的任意坐标系。

如果是这样,我必须使用什么数学公式?看起来我必须将矢量 (x, y, z) 旋转设备方向角度,但我不知道该怎么做。