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 在这篇文章中, ...
随机推荐
- 解决Eclipse中Android SDK Manager图标不见了的问题
在Eclipse中安装完ADT后,发现 Android SDK Manager图标不见了,Android Virtual Device Manager图标也不见了. 解决这个问题,可用如下方法: 打开 ...
- rem单位怎么使用
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- step6: item与pipeline
目的:提取内容进行格式化输出,类似于字典 编写item文件 class JobBoleArticleItem(scrapy.Item): title = scrapy.Field() #支持传进任何数 ...
- [APIO2018] Circle selection 选圆圈
Description 给出 \(n\) 个圆 \((x_i,y_i,r_i)\) 每次重复以下步骤: 找出半径最大的圆,并删除与这个圆相交的圆 求出每一个圆是被哪个圆删除的 Solution \(k ...
- JS实现中英文混合文字溢出友好截取功能
在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 ...
- HTTP中的响应协议及302、304的含义
响应协议 HTTP/1.1 200 OK:响应协议为HTTP1.1,状态码为200,表示请求成功,OK是对状态码的解释: Server: Apache-Coyote/1.1:服务器的版本信息: Con ...
- Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM
略过下面的叙述快速配置 配置你的Idea启动jdk (Idea15之后的版本启动不要JDK1.8) 添加环境变量IDEA_JDK_64,配置和JAVA_HOME环境变量相同,路径写到1.8的jdk就 ...
- Regular Expression学习笔记
正则写法 var re = /a/;//简写 /.../里不能为空,因为会误以为是注释: var re = new RegExp('a'); 新建一个RegExp对象:和新建Array对象,Objec ...
- Apache服务器运维笔记(5)----容器的处理顺序
容器在配置文件中是可以多次使用的,同时也可以嵌套使用,但是 Apache 在处理容器时却是有一定顺序的,因此在编写容器配置时需要按照一定的顺序来进行,否则Apache处理的结果很可能不是管理员想要的. ...
- Apache服务器运维笔记(3)----容器部分
1.<IfModule>容器 <IfModule>容器作用于模块,它会首先判断模块是否载入,然后再决定是否进行处理,也就是说只有当判断结果为真时才会执行容器内的指令,相反如果为 ...