AccAndOri.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * 绑定加速计
  3. */
  4. function bindAcc(callback) {
  5. let id = null;
  6. console.log("监听加速计");
  7. id = plus.accelerometer.watchAcceleration((a) => {
  8. uni.$emit('watchAcceleration', a);
  9. // console.log(a);
  10. }, function(e) {
  11. console.log("监听失败:" + e.message);
  12. if (id) {
  13. plus.accelerometer.clearWatch(id);
  14. id = null;
  15. }
  16. }, {
  17. frequency: 20
  18. });
  19. console.log("监听加速计 id:",id);
  20. callback(id);
  21. }
  22. /**
  23. * 绑定陀螺仪
  24. */
  25. function bindOri(callback) {
  26. let id = null;
  27. console.log("监听陀螺仪");
  28. id = plus.orientation.watchOrientation(function(o) {
  29. uni.$emit('watchOrientation', o);
  30. }, function(e) {
  31. console.log("监听失败:" + e.message);
  32. if (id) {
  33. plus.orientation.clearWatch(id);
  34. id = null;
  35. }
  36. }, {
  37. frequency: 60
  38. });
  39. console.log("监听陀螺仪 id:",id);
  40. callback(id);
  41. }
  42. /**
  43. * 解除加速计绑定
  44. */
  45. function unBindAcc(accId) {
  46. console.log("解除加速计绑定:",accId);
  47. if (accId) {
  48. plus.accelerometer.clearWatch(accId);
  49. } else {
  50. console.log("没有监听设备加速变化");
  51. }
  52. }
  53. /**
  54. * 解除陀螺仪绑定
  55. */
  56. function unBindOri(oriId) {
  57. console.log("解除陀螺仪绑定:",oriId);
  58. if (oriId) {
  59. plus.orientation.clearWatch(oriId);
  60. } else {
  61. console.log("没有监听设备方向变化");
  62. }
  63. }
  64. export default {
  65. bindAcc,
  66. unBindAcc,
  67. bindOri,
  68. unBindOri
  69. }