热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cordovadevicemotion插件

介绍这个插件提供了访问设备的加速度计。加速度计是一个运动传感器检测到的变化(三维维度)在相对运动的当前设备的方向,在三个维度上沿X



介绍

这个插件提供了访问设备的加速度计。加速度计是一个运动传感器检测到的变化(三维维度)在相对运动的当前设备的方向,在三个维度上沿X,Y,和Z坐标轴用来在三个维度来跟踪设备的运动

 

 

 

 

 


安装

cordova plugin add cordova-plugin-device-motion

 

 

 

 

 

 


支持的平台Supported Platforms

· Amazon Fire OS

· Android

· BlackBerry 10

· Browser

· Firefox OS

· iOS

· Tizen

· Windows Phone 8

· Windows

 

 

 

 

 

 


使用方法

访问是通过一个全局navigator.accelerometer对象

虽然对象连接到全局navigator,但是需要在deviceready事件之后才可用

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {

    console.log(navigator.accelerometer);

}

 

 

 


方法Methods

· navigator.accelerometer.getCurrentAcceleration

· navigator.accelerometer.watchAcceleration

· navigator.accelerometer.clearWatch

 

 


navigator.accelerometer.getCurrentAcceleration


拿到当前加速度X,Y,和Z

这些加速度值返accelerometerSuccess回调函数

navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);

 


Example

function onSuccess(acceleration) {

    alert('Acceleration X: ' + acceleration.x + '\n' +

          'Acceleration Y: ' + acceleration.y + '\n' +

          'Acceleration Z: ' + acceleration.z + '\n' +

          'Timestamp: '      + acceleration.timestamp + '\n');

}

 

function onError() {

    alert('onError!');

}

 

navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);

 

 


特性


Browser 特性

XYZ运动的值都是随机生成的,以模拟加速度计

 


Android 特性

加速度计被称为与SENSOR_DELAY_UI标记,这限制了最大读出频率之间20-60赫兹,这取决于设备。period 的值对应于更高频率将导致重复的样本。更多的细节可以查看Android API指南

 


iOS 特性

iOS不承认在任何给定的点取当前加速度的概念。

你必须看的加速度和在给定的时间间隔采集数据。

因此,该getCurrentAcceleration 函数产生的最后一个返回值从调用watchAccelerometer 

 

 

 

 


navigator.accelerometer.watchAcceleration

检索器的电流加速度定期考核,accelerometersuccess每一次回调函数。通过指定间隔毫秒acceleratoroptions对象的频率参数.

回看ID引用加速度计的观看间隔,可以使用navigator.accelerometer.clearwatch停止看加速度计

var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,

 accelerometerError, accelerometerOptions);


· accelerometerOptions下列可选键对象

frequency请求调用accelerometerSuccess在毫秒的加速度数据。(数字型)(默认值:10000)

 


Example

function onSuccess(acceleration) {

    alert('Acceleration X: ' + acceleration.x + '\n' +

          'Acceleration Y: ' + acceleration.y + '\n' +

          'Acceleration Z: ' + acceleration.z + '\n' +

          'Timestamp: '      + acceleration.timestamp + '\n');

}

 

function onError() {

    alert('onError!');

}

 

var options = { frequency: 3000 };  // Update every 3 seconds

 

var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

 

 


特性


iOS Quirks

在定时请求这个API返回的成功的回调时,但是限制要求的设备之间的40ms- 1000ms范围。例如,如果你要求一个3秒的间隔,(3000ms),API从设备每1秒请求数据,但执行成功回调3执行一次

 

 

 

 


navigator.accelerometer.clearWatch

停止加速度引用的watchID 参数.

navigator.accelerometer.clearWatch(watchID);

· watchIDnavigator.accelerometer.watchAcceleration返回的ID

 


Example

var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

 

// ... later on ...

 

navigator.accelerometer.clearWatch(watchID);

 

 

 

 

 

 

 

 


对象Objects

· Acceleration

 

 加速度Acceleration


包含加速度计在特定时间点捕获的数据。加速度值包括重力的影响(9.81/^ 2),所以当一个平和面对,X,Y,和Z返回值应该是0,0,和9.81

 



属性Properties

· x加速度在X轴的坐标。(米/^ 2)(数字型)

· y加速度在y的坐标。(米/^ 2)(数字型)

· z加速度在Z的坐标。(米/^ 2)(数字型)

· timestamp以毫秒为单位创建时间戳。(DOMTimeStamp)



 

  

 

 

 

 


示例


示例一:

index.html:






device-motion插件






index.js:

var app = {initialize: function() {document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);},onDeviceReady: function() {var _this = this;document.getElementById("current").onclick = function(){_this.getCurrentAcceleration();}document.getElementById("watch").onclick = function(){_this.getWatchAcceleration();}},// 获取当前加速度getCurrentAcceleration: function(){function onSuccess(acceleration) {console.log('Acceleration X: ' + acceleration.x + '\n' +'Acceleration Y: ' + acceleration.y + '\n' +'Acceleration Z: ' + acceleration.z + '\n' +'Timestamp: ' + acceleration.timestamp + '\n');}function onError() {console.log('onError!');}navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);},// 监视加速度,每隔3秒输出当前加速度getWatchAcceleration: function(){function onSuccess(acceleration) {console.log('Acceleration X: ' + acceleration.x + '\n' +'Acceleration Y: ' + acceleration.y + '\n' +'Acceleration Z: ' + acceleration.z + '\n' +'Timestamp: ' + acceleration.timestamp + '\n');}function onError() {console.log('onError!');}var options = { frequency: 3000 }; // Update every 3 secondsvar watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);var timmer = setTimeout(function(){navigator.accelerometer.clearWatch(watchID);},10000);}};app.initialize();

 

运行:


 

点击“获取当前加速度”,输出内容

 

点击“监视加速度”,每隔3秒会输出一个内容






推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文介绍了获取关联数组键的列表的方法,即使用Object.keys()函数。同时还提到了该方法在不同浏览器的支持情况,并附上了一个代码片段供读者参考。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
author-avatar
粅媞em亼啡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有