phonegap 的指南针 api Compass
一、 Compass 介绍方法参数
1、Compass 也就是,常说的指南针,又叫罗盘
2、方法
compass.getCurrentHeading
compass.watchHeading
compass.clearWatch
compass.watchHeadingFilter (obsolete) 1.6版本以上不支持
compass.clearWatchFilter (obsolete) 1.6版本以上不支持
3、参数
compassSuccess compassError
compassOptions compassHeading
二、 compass.getCurrentHeading 对象 主要获取罗盘的当前朝向。
1、navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
compassSuccess 成功的回调函数
compassError 失败的回调函数
compassOptions 获取指南针信息时的一个选项例如:频率,它一般为一个 json 对象在 (compass.watchHeading)中用
2、回调成功后会用到 compassHeading 对象
magneticHeading:罗盘在某一时刻的朝向,取值范围是 0 - 359.99 度。(数字类型)
trueHeading:罗盘在某一时刻相对于北极的朝向,取值范围是 0 - 359.99 度。如果是负 值则表明该参数不确定。(数字类型)
headingAccuracy:实际度数(magneticHeading)和记录度数(trueHeading)之间的偏差。(数字类型)
timestamp:确定罗盘朝向的时刻.。(毫秒数)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8"> // 等待Cordova加载
document.addEventListener("deviceready", onDeviceReady, false); // Cordova加载完成
function onDeviceReady() {
$('#getCurrentHeading').click(function(){
navigator.compass.getCurrentHeading(onSuccess, onError);
}) }
function onSuccess(heading){
alert('Heading: ' + heading.magneticHeading);
}
function onError(compassError) {
alert('Compass Error: ' + compassError.code);
}
</script> </head>
<body>
<div data-role="page">
<div data-role="header">
<h1>PhoneGap100实战</h1>
</div>
<div data-role="content">
<h1>指南针例子</h1>
<a href="#" data-role='button' id="getCurrentHeading">点击获取当前的朝向</a>
<p>getCurrentHeading</p>
</div>
<div data-role="footer">
<h4> </h4>
</div>
</div> </body>
</html>
三、 compass.watchHeading 对象
1、罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从 0 度到 359.99 度。
2、compass.watchHeading 每隔固定时间就获取一次设备的当前朝向。每次取得朝向后,headingSuccess 回调函 数会被执行。
3、通过 compassOptions 对象的 frequency 参数可以设定以毫秒为单位的时间间隔。
4、返回的 watch ID 是罗盘监视周期的引用,可以通过 compass.clearWatch 调用该 watch ID 以停止对罗盘的监 视。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8"> // 等待Cordova加载
document.addEventListener("deviceready", onDeviceReady, false);
var watchID='';
// Cordova加载完成
function onDeviceReady() {
$('#getCurrentHeading').click(function(){
var options = { frequency: 3000 };
watchID = navigator.compass.watchHeading(onSuccess, onError, options); });
$('#stopWatch').click(function(){
stopWatch();
}) }
function onSuccess(heading){
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
}
function onError(compassError) {
alert('Compass Error: ' + compassError.code);
}
//stop
function stopWatch(){
if(watchID){
navigator.compass.clearWatch(watchID);
watchID='';
}
}
</script> </head>
<body>
<div data-role="page">
<div data-role="header">
<h1>PhoneGap100实战</h1>
</div>
<div data-role="content">
<h1>指南针例子</h1>
<a href="#" data-role='button' id="getCurrentHeading">点击获取当前的朝向</a>
<a href="#" data-role='button' id="stopWatch">停止获取当前的朝向</a>
<p id="heading">还没有获取</p>
</div>
<div data-role="footer">
<h4> </h4>
</div>
</div> </body>
</html>
四、综合案例说明
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<style>
#main{
height:300px;
position:relative;
}
#compassDiv{
position:absolute;
top:30px;
}
#northDiv{
position:absolute;
top:116px;
left:142px;
z-index:2;
-webkit-transform:rotate(60deg);
}
</style>
<script type="text/javascript" charset="utf-8"> // 等待Cordova加载
document.addEventListener("deviceready", onDeviceReady, false);
var watchID='';
// Cordova加载完成
function onDeviceReady() { var options = { frequency: 300 };
watchID = navigator.compass.watchHeading(onSuccess, onError, options); }
function onSuccess(heading){
var element = document.getElementById('northDiv');
var now_heading=heading.magneticHeading;
element.style.webkitTransform = 'rotate('+now_heading+"deg)";
$('#heading').text("当前的朝向"+now_heading); }
function onError(compassError) {
alert('Compass Error: ' + compassError.code);
} </script> </head>
<body>
<div data-role="page">
<div data-role="header">
<h1>PhoneGap100实战</h1>
</div>
<div data-role="content">
<div id='main'>
<div id="northDiv"><img src="../images/antique_needle.png"/></div>
<div id="compassDiv"><img src="../images/antique_compass.png" width="300" height="300" /></div>
</div>
</div>
<div data-role="footer">
<div id="heading">正在获取朝向...</div>
</div>
</div> </body>
</html>
phonegap 的指南针 api Compass的更多相关文章
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...
- phonegap的照相机API
1. Camera Api简单介绍 2. 拍照 3. 预览照片 一. Camera Api简单介绍 Camera选择使用摄像头拍照,或从设备相册中获取一张照片.图片以base64编码的 字符串或图片U ...
- phonegap的照相机 API
一. Camera Api 简单介绍 Camera 选择使用摄像头拍照,或从设备相册中获取一张照片.图片以 base64 编码的 字符串或图片 URI 形式返回. 方法: 1. camera.getP ...
- PhoneGap 的文件 api
一. 文件系统的请求 请求文件系统通过 window.requestFileSystem 来完函数声明如下: window.requestFileSystem(type, size, successC ...
- Phonegap中自定义插件的使用
在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对ph ...
- 29、phonegap入门
0. PhoneGap介绍 0.1 什么是PhoneGap? PhoneGap是一个基于HTML.CSS.JS创建跨平台移动应程序的快速开发平台.与传统Web应用不同的是,它使开发者能够利用iPho ...
- microbit之mpython的API
附录:常用API函数汇总 一.显示 display.scroll("Hello, World!") 在micro:bit点阵上滚动显示Hello, World!,其中Hello, ...
- 新手的第一个phonegap Android应用
对PhoneGap开发感兴趣的请加入群 PhoneGap App开发 348192525 手机成为现在软件应用必不可少的一种设备,然而手机平台的不统一造成我们需要为不同手机重写代码,这对一般应用来 ...
- 构建通过 Database.com 提供技术支持的 PhoneGap 应用程序
要求 其他必要产品 Database.com account 用户级别 全部 必需产品 PhoneGap Build 范例文件 Database.Com-PhoneGap-Sample 在这篇文章中, ...
随机推荐
- CCF 出现次数最多的数 201312-1
出现次数最多的数 问题描述 试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个正整数,找出它们中出现次数最多的 ...
- Iterator和ListIterator的区别 ---面试题
Iterator和ListIterator的区别是什么? 下面列出了他们的区别: Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List. Iterator对 ...
- Golang教程:指针
什么是指针 指针是存储一个变量的内存地址的变量. 在上图中,变量 b 的值是 156,存储在地址为 0x1040a124 的内存中.变量 a 存储了变量 b 的地址.现在可以说 a 指向b. 指针的声 ...
- 开启停止wifi热点bat脚本
@echo offcolor 2title 启停无线WIFI echo 启动WIFI=======>按1键 echo ...
- SQL 除去回车符 除去空格符
update table set fa=replace(fa,chr(13),'') ; --- 除去回车符 update table set fa=replace(fa,' ','') ; --- ...
- Expression Blend实例中文教程(13) - 控件模板快速入门ControlTemplates
上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样式.本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate.Con ...
- 借助 CORS 从 JavaScript 使用 API 应用
应用服务提供内置的跨域资源共享 (CORS) 支持,可让 JavaScript 客户端对 API 应用中托管的 API 进行跨域调用.应用服务允许配置对 API 的 CORS 访问,无需在 API 中 ...
- Linux下剪切拷贝命令
Linux下剪切拷贝命令 命令格式: mv source dest mv: 命令字 source: 源文件 dest: 目的地址 Linux下拷贝命令 命令格式:cp ...
- MVC设计模式实现权限管理登录,超详细
功能实现:在页面输入给定的用户名之一,可以显示当前用户的权限,也可以在页面更改该用户的权限,更新之后保存.像下面这样. 填写用户名提交: 显示用户AAA的权限: 修改权限(增加article3): 点 ...
- powerdesigner 将表中name列值复制到comment列 (保留原有comment)
/** * PowerDesigner里面将表中name列值复制到comment列 * @see --------------------------------------------------- ...