收藏
回答

wx.onDeviceMotionChange的iOS返回值错误

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.onDeviceMotionChange 微信iOS客户端 7.0.12 2.10.4

wx.onDeviceMotionChange

beta 当手机坐标 Y/Z 和地球 Y/Z 重合时,绕着 X 轴转动的夹角为 beta。范围值为 [-1*PI, PI) 。实际返回值是-1*PI/2, PI/2

gamma 当手机 X/Z 和地球 X/Z 重合时,绕着 Y 轴转动的夹角为 gamma。范围值为 [-1*PI/2, PI/2)。实际返回值是-1*PI, PI ,而且非常不准确,感觉返回的值跟手机的夹角不对应。

上述问题非常容易复现,麻烦开发人员引起重视,测试复现问题,并帮助解决,非常感谢!

回答关注问题邀请回答
收藏

2 个回答

  • fy75
    fy75
    2020-06-11

    可以用

    onAccelerometerChange(function (res) {

    var beta= Math.atan2(res.y, res.z* 57.3

    })

    这里的beta基本上就是onDeviceMotionChange得到的beta了。



    2020-06-11
    有用 1
    回复 3
    • 書書書書書虫_Vin
      書書書書書虫_Vin
      2020-06-22
      都是什么神仙。。
      2020-06-22
      回复
    • VincentWen
      VincentWen
      2021-06-16
      这个方案能用吗?
      2021-06-16
      回复
    • VincentWen
      VincentWen
      2021-06-16回复書書書書書虫_Vin
      计算出来的和设备返回的值好像存在一个 180 的差值
      2021-06-16
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-04-09

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    另外,用出现问题的设备扫下方的小程序码,提供下扫码结果截图:

    2020-04-09
    有用
    回复 5
    • 2020-04-13
      wx.onDeviceMotionChange(function (res) {
            var alpha = parseInt(res.alpha);
            var beta = parseInt(res.beta);
            var gamma = parseInt(res.gamma);
      }),就这一段代码,希望让开发人员看下,跟文档对比下,数据不准确是因为设备本身的问题,还是代码的问题,让开发人员转动设备,就可以测出来,iOS,iOS,iOS,重要的问题说三遍。。。
      2020-04-13
      回复
    • 2020-04-13
      2020-04-13
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2020-04-13回复
      代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html按照这里的格式提供下
      2020-04-13
      回复
    • 2020-04-13回复疯狂的小辣椒
      https://developers.weixin.qq.com/s/J4Nvhzm779gV ,安卓机没问题,苹果机返回的数值都不准确,可以让测试用真机好好测测,绝对有问题,感觉论坛中有反馈,不知道是不能改,还是一直没改
      2020-04-13
      回复
    • Quaye
      Quaye
      2020-05-11
      imu数据native透传上来的,beta值调变问题反馈一个月多了,还是没信儿!
      希望官方引起重视,开发者来微信做开发,为微信debug发现错误帮助改善和优化小程序,但微信这办事效率,真是坑苦了开发者了!
      2020-05-11
      回复
登录 后发表内容
问题标签