问题标签 [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.
ios - 绝对旋转率
在 iOS 上CMDeviceMotion
,我可以获取设备CMAttitude
及其CMRotationRate
. 旋转速率位于本地设备坐标系 (x,y,z) 中。
对于给定的CMAttitude
,如何确定绝对旋转速率,即设备在初始定义的世界坐标系 (X,Y,Z) 中的旋转速率CMAttitudeReferenceFrame
?
例如:假设我CMMotionManager
使用xMagneticNorthZVertical
参考框架进行初始化。如何计算绕 X 轴(世界磁北)和 Z 轴(世界垂直)的旋转速率?
javascript - 如何使用设备运动使画布动画随手机移动
我已经设法为我的画布创建了一个旋转动画,但现在我想添加一个设备运动的事件处理程序,以使我的画布在我移动手机时移动。例如:现在我将画布平移到屏幕的中间点并开始旋转。当我将手机向左移动时,我希望我的中间点向左移动,反之亦然,因为我将手机向右移动。
我尝试将事件处理程序添加到我的移动函数并使用 event.accelerationIncludingGravity.x 来设置画布翻译的起点,但它不起作用。我认为有问题的部分是cxt.translate(c.width / 2 - x, c.height / 2 - y);
有人可以告诉我如何做到这一点吗?这是我的代码:
javascript - 在 Xcode 的 WKWebView 中跟踪 Deive Motion
我正在我的 Xcode 应用程序中加载一个带有 WKWebView 的网站,并且该网站需要设备运动才能运行。在 safari 中,网站请求访问设备运动(ios 13 功能),但在 Xcode 中,它不会请求访问,也不会开始跟踪运动数据。使用应用商店中的 WebView 应用程序,我可以在 WKWebView 中加载同一网站,并且动作是轨道,这意味着它绝对是可能的。非常感谢我能在此功能上获得的任何帮助。提前致谢!
这是更多信息:
ios 13 设备运动请求 JS 代码:
这是一个网站,用于演示适用于 WebView 应用程序的设备运动,但不适用于基本的 WKWebView:
ios - WKWebView iOS 13 中的 DeviceMotion 和 DeviceOrientation
我想在 iOS 13+中使用DeviceMotion
和DeviceOrientation
事件。WKWebView
我正在使用下面的代码
该网页在 safari 和 chrome 中都可以使用,并要求允许使用设备动作,如下所示
图片:
状态将根据我单击允许或取消更新
但是在我正在使用的应用程序中WKWebView
,当我按下询问权限按钮时,它没有显示任何询问权限的警报,而是直接将状态设置为Denied。(如下所示)。
如果我做错了什么或从WKWebView
侧面需要任何额外的东西,请指导我。这是我的 iOSWKWebView
代码。我不知道是否需要更改WKUserContentController
或更改WKWebViewConfiguration
。
android - 在 Android 设备上使用 Angular Ionic 加速计事件频率在前 5 分钟减慢
我在用
使用带有 Angular 的 Ionic 访问 Android 设备上的加速度计数据。在应用程序内部时,该事件以 60 Hz 的频率工作,但当应用程序切换到后台时,前 5 分钟频率下降约 9-10 Hz,并且在某个时间点仍处于后台时,它会回到 60 Hz并无限期地保持这种状态。
我也在使用后台插件
我尝试在 config.xml 中使用相应条件将 disableBatteryOptimizations() 添加到后台插件,但仍然没有运气。
我还尝试了 Device Motion 和 Gyroscope 的插件,但它们的行为相同。
我应该如何防止频率变慢?以前有没有其他人遇到过这个问题?
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)
我假设我需要在调用它之前检查方法/函数是否存在。有什么建议么?
ios - 如何在 swift 5 中创建包含传感器数据的 csv 文件?
我的视图中有 3 个标签,这就是我获取传感器数据并将其写入标签中的方式:
现在我想将该日期保存在 csv 文件中。我怎样才能做到这一点?
我已经尝试过这个答案中提出的解决方案:如何记录传感器数据并导出到 CSV?,但它对我不起作用。
javascript - iOS 上的 Devicemotion 事件
我想在我的网页上为 Android 和 iOS 平台实现移动设备“摇晃”事件。
因此,我立即找到了由 Alex Gibson 编写的唯一一个脚本。
经过一些测试,我发现它可以完美地在 Android 手机上运行。不幸的是,在 iPhone 上它不起作用。
根据MDN web docs,使用devicemotion
事件的脚本没有问题。
此脚本在codeopen上没有 iOS 错误,只是无法正常工作。
有什么方法可以克服这个问题吗?
UPD
我发现这篇文章描述了 iOS 13 对devicemotion
事件的要求,所以现在你必须请求它的权限。
但它也不起作用。
无论如何,它都会在没有任何许可请求的情况下返回“拒绝”状态。
swift - 应用程序不会在后台接收 DeviceMotion 更新 (WatchOS 6)
我正在为 Apple Watch 开发一个应用程序,该应用程序通过 DeviceMotion 获取加速度计、陀螺仪数据,并通过 HKWorkout 获取心率。
在应用程序停留在前台之前,一切正常。但是,当它进入非活动状态时(当用户降低手腕时),它会工作一段时间,但在某个点它会停止。此外,当应用程序进入后台时,应用程序停止收集新的 DeviceMotion 更新,但我认为心率观察器继续工作,因为绿色 LED 仍然亮着。
我用于 DeviceMotion 的代码是:
我用于心率的代码:
由于Apple文档状态(https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings)
当锻炼会话处于活动状态时,您的应用程序可以继续在后台运行。这使您的应用程序可以监控用户并在整个活动中收集数据。此外,它还能确保您的应用在用户查看手表时出现。
我认为在这些情况下没有必要管理应用程序的行为。但是,似乎必须做点什么。在后台状态(和非活动状态)收集新的 DeviceMotion 数据的最佳方法是什么?
javascript - devicemotion api 设备坐标系
DeviceMotionEvent API 似乎提供了参考世界坐标系的加速度数据。
x
- 表示从西到东轴的 x 轴上的加速度
y
- 表示从南到北的 y 轴上的加速度
z
- 表示从下到上轴 z 轴上的加速度
但是,我想参考设备的坐标系来使用这些数据。
这个 API 是否提供这种格式?
否则,是否可以通过从DeviceOrientationEvent(可能不提供“绝对”数据)获取方向来转换此数据?
absolute
- 一个布尔值,指示设备是绝对提供方向数据(即,参考地球坐标系)还是使用设备确定的任意坐标系。
如果是这样,我必须使用什么数学公式?看起来我必须将矢量 (x, y, z) 旋转设备方向角度,但我不知道该怎么做。