AccAndOri.js 1.4 KB

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