先去安装一下 cordova 的 device motion 插件 …
打开终端 … phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git
index.html
再打开应用项目的 index.html …
这里我事先添加了两个按钮 … 触摸 startwatch 按钮的时候,让应用开始监测加速度 … 然后再把实时获取到的加速度的 x,y, 还有 z 轴的值,输出到这个 acceleration-value 容器里面 …
当我们触摸 stopwatch 按钮的时候,让应用停止监测加速度 …
index.js
下面再打开 index.js …
在 deviceready 事件发生以后要做的事情里面 … 我们去监测 startwatch 还有 stopwatch 按钮的触摸事件 … 当 startwatch 按钮的 touchstart 事件发生以后,也就是触摸开始的事件 … 去执行 startWatch 里面定义的动作 …
触摸 stopwatch 按钮的时候,去执行 stopWatch 里面定义的动作 …
startWatch
下面我们去定义这个 startWatch … 输入 navigator.accelerometer.watchAcceleration() … 使用这个 watchAcceleration 去实时的监测加速度值 …
它有三个参数 … 监测成功的时候要做的事 … 监测失败的时候要做的事 .. 还有 一个选项参数 …
navigator.accelerometer.watchAcceleration(app.onSuccess, app.onError, options);
成功的时候,去执行 onSuccess … 失败的时候去执行 onError … 一会儿我们再去定义这两个函数 …
选项的值可以放在这个 options 里面 …
在它的上面再去定义一下这个 options … var options = {};
在它的里面,去定义一个 frequency 属性 … 这个属性就是监测加速度值的间隔时间 … 它的值的单位是毫秒 … 这里我们设置成 1000 毫秒 … 也就是每秒钟去看一下设备的加速度值 …
onSuccess
监测成功以后,会把得到的数据值放在 acceleration 对象里面 … 我们可以把它交给成功以后执行的函数里面去处理一下 …
在 onSucess 这个函数里面,传递一个 acceleration 参数 …
这样在这个函数里,就可以使用 acceleration.x 输出加速度 x 轴的值 … acceleration.y 可以输出 y 轴的值 … acceleration.z 可以输出 z 轴的值 …
在这里粘贴一段代码 … 这段代码你可以在这节课的资料包里找到 …
先找到 index.html 里面的 acceleration-value 这个容器 .. 再去设置一下这个容器里面的内容 … 也就是输出加速度的 x,y,z,还有时间戳的值 …
测试
下面我们去测试一下 … 保存 …
打开终端工具重新去编译一下这个应用 … 把它编译成 iOS 平台的应用 ... phonegap build ios …
再打开应用项目的目录 … platforms … ios … HelloWorld.xcodeproj … 用 xcode 打开编译之后的应用项目 …
这里我们需要使用真正的设备去测试加速仪 … 选择 小雪的 iPhone …
然后点击 运行 …
这样会把应用安装在小雪的 iPhone 上面 …
点击 开始监测加速度 … 在屏幕上 … 每隔一秒钟就会显示出当前的加速度的值 …
在下面的视频里,我们再去看一下怎么样停止监测加速度 ….