blob: 728cc84d7b5e46c0ee022269388614e122fe01f9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
<title>Cordova Mobile Spec</title>
<link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8">
<script type="text/javascript" charset="utf-8" src="../cordova.js"></script>
<script type="text/javascript" charset="utf-8">
var deviceReady = false;
function roundNumber(num) {
var dec = 3;
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
//-------------------------------------------------------------------------
// Compass
//-------------------------------------------------------------------------
var watchCompassId = null;
/**
* Start watching compass
*/
var watchCompass = function() {
console.log("watchCompass()");
// Success callback
var success = function(a){
document.getElementById('compassHeading').innerHTML = roundNumber(a.magneticHeading);
};
// Fail callback
var fail = function(e){
console.log("watchCompass fail callback with error code "+e);
stopCompass();
setCompassStatus(e);
};
// Update heading every 1 sec
var opt = {};
opt.frequency = 1000;
watchCompassId = navigator.compass.watchHeading(success, fail, opt);
setCompassStatus("Running");
};
/**
* Stop watching the acceleration
*/
var stopCompass = function() {
setCompassStatus("Stopped");
if (watchCompassId) {
navigator.compass.clearWatch(watchCompassId);
watchCompassId = null;
}
};
/**
* Get current compass
*/
var getCompass = function() {
console.log("getCompass()");
// Stop compass if running
stopCompass();
// Success callback
var success = function(a){
document.getElementById('compassHeading').innerHTML = roundNumber(a.magneticHeading);
};
// Fail callback
var fail = function(e){
console.log("getCompass fail callback with error code "+e);
setCompassStatus(e);
};
// Make call
var opt = {};
navigator.compass.getCurrentHeading(success, fail, opt);
};
/**
* Set compass status
*/
var setCompassStatus = function(status) {
document.getElementById('compass_status').innerHTML = status;
};
/**
* Function called when page has finished loading.
*/
function init() {
document.addEventListener("deviceready", function() {
deviceReady = true;
console.log("Device="+device.platform+" "+device.version);
}, false);
window.setTimeout(function() {
if (!deviceReady) {
alert("Error: Apache Cordova did not initialize. Demo will not run correctly.");
}
},1000);
}
</script>
</head>
<body onload="init();" id="stage" class="theme">
<h1>Compass</h1>
<div id="info">
<b>Status:</b> <span id="compass_status">Stopped</span>
<table width="100%"><tr>
<td width="33%">Heading: <span id="compassHeading"> </span></td>
</tr></table>
</div>
<h2>Action</h2>
<div class="btn large" onclick="getCompass();">Get Compass</div>
<div class="btn large" onclick="watchCompass();">Start Watching Compass</div>
<div class="btn large" onclick="stopCompass();">Stop Watching Compass</div>
<h2> </h2><div class="backBtn" onclick="backHome();">Back</div>
</body>
</html>