PhoneGap中文网

标题: phonegap3.4摇一摇功能问题 [打印本页]

作者: yuonhtt    时间: 2014-3-23 14:43
标题: phonegap3.4摇一摇功能问题
  1. var watchShakeID = null;
  2. var oldValue = {
  3.     x: null,
  4.     y: null,
  5.     z: null
  6. };

  7. var app = {
  8.     // Application Constructor
  9.     initialize: function() {
  10.         this.bindEvents();
  11.     },
  12.     // Bind Event Listeners
  13.     //
  14.     // Bind any events that are required on startup. Common events are:
  15.     // 'load', 'deviceready', 'offline', and 'online'.
  16.     bindEvents: function() {
  17.         document.addEventListener('deviceready', this.onDeviceReady, false);
  18.     },
  19.     // deviceready Event Handler
  20.     //
  21.     // The scope of 'this' is the event. In order to call the 'receivedEvent'
  22.     // function, we must explicity call 'app.receivedEvent(...);'
  23.    
  24.    
  25.     onDeviceReady: function() {
  26.         //app.receivedEvent('deviceready');
  27.         goto_StartWatchShake();
  28.     }//,
  29.     // Update DOM on a Received Event
  30.     /*receivedEvent: function(id) {
  31.         var parentElement = document.getElementById(id);
  32.         var listeningElement = parentElement.querySelector('.listening');
  33.         var receivedElement = parentElement.querySelector('.received');

  34.         listeningElement.setAttribute('style', 'display:none;');
  35.         receivedElement.setAttribute('style', 'display:block;');

  36.         console.log('Received Event: ' + id);
  37.     }*/
  38. };

  39. function goto_StopWatchShake() {
  40.     if (watchShakeID) {
  41.         navigator.accelerometer.clearWatch(watchShakeID);
  42.         watchShakeID = null;
  43.     }
  44. }
  45. function goto_StartWatchShake() {
  46.     var options = { frequency: 3000 };
  47.     watchShakeID = navigator.accelerometer.watchAcceleration(onWatchShakeSuccess, onWatchShakeError, options);
  48.     alert(watchShakeID);
  49. }

  50. function onWatchShakeSuccess(newValue) {
  51.     alert(newValue.x);
  52.     var changes = {},
  53.     bound = 2;
  54.     if (oldValue.x !== null) {
  55.         changes.x = Math.abs(oldValue.x-newValue.x);
  56.         changes.y = Math.abs(oldValue.y-newValue.y);
  57.         changes.z = Math.abs(oldValue.z-newValue.z);
  58.     }
  59.     if ((changes.x > bound && changes.y > bound) || (changes.x > bound && changes.z >bound)|| (changes.y > bound && changes.z >bound)) {
  60.         alert('检测到手机晃动');
  61.     }
  62.     oldValue = {
  63.     x: newValue.x,
  64.     y: newValue.y,
  65.     z: newValue.z
  66.     }

  67. }

  68. function onWatchShakeError() {
  69.     alert('失败');
  70. }
复制代码


在xcode 5.1调试时候,在模拟器----硬件---摇动手势
没有任何反应。。。。  有大神了解是什么问题么?
在安卓机器下可以弹出 x数值
但是在 ios下,只弹出了 alert(watchShakeID);  后续的坐标不能弹出来

作者: admin    时间: 2014-3-25 09:22
用真机调试一下  模拟器可能没有那个设备
作者: 354958049    时间: 2015-5-26 18:00
很不错,不错,学习学习。跨平台得顶起
作者: 354958049    时间: 2015-5-26 18:15
人不错,学习学习 感觉phonegap+html应该是趋势




欢迎光临 PhoneGap中文网 (http://bbs.phonegap100.com/) Powered by Discuz! X3.2