我是phonegap的新手。我正在创建一个获取设备位置的应用程序...我已经测试了三星galaxy tab和htc,但没有做任何事情......我试着获得设备的速度,并将其显示在一个屏幕中的div。这是我的代码:
地理位置:
// Phonegap loads
document.addEventListener("deviceready", onDeviceReady, false);
var watchIDgeolocation = null;
var watchIDaccelerometer = null;
// PhoneGap has loaded
function onDeviceReady() {
var options = { frequency: 1000 }; // I want obtain data each 1 s
watchIDgeolocation = navigator.geolocation.watchPosition(onSuccessGeolocation, onErrorGeolocation, options);
startWatch();
}
// Success
var onSuccessGeolocation = function(position) {
// These are functions that displays data in screen
cambioMarchas(position.coords.speed);
excesoVelocidad(position.coords.speed);
paradaProlongada(position.coords.speed);
aceleracionBrusca(position.coords.speed);
deceleracionBrusca(position.coords.speed);
accidenteDeTrafico(position.coords.speed);
// ERROR
function onErrorGeolocation(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
我已经在Chrome的扩展程序Ripple中进行了测试,它工作正常,更改了速度值,并且工作正常......但是对于设备,我不知道为什么不这样做。 为什么会这样? 此致,丹尼尔
我已经读过可能需要在var选项中添加{enableHighAccuracy:true} ...但我不明白这一点......
答案 0 :(得分:3)
Daniel先生,首先我建议您尝试使用这个常见的PhoneGap应用来测试设备是否可以使用,如果是,它会提示您显示警告消息,同时,如果它正在工作完美,所以你的代码有问题,所以回去检查一下。你在这里:
// Global variable that will tell us whether PhoneGap is ready
var isPhoneGapReady = false;
function init() {
// Add an event listener for deviceready
document.addEventListener("deviceready",
onDeviceReady, false);
// Older versions of Blackberry < 5.0 don't support
// PhoneGap's custom events, so instead we need to perform
// an interval check every 500 milliseconds to see whether
// PhoneGap is ready. Once done, the interval will be
// cleared and normal processing can begin.
intervalID = window.setInterval(function() {
if (PhoneGap.available) {
onDeviceReady();
}
}, 500);
}
function onDeviceReady() {
window.clearInterval(intervalID);
// set to true
isPhoneGapReady = true;
alert('The device is now ready');
}
// Set an onload handler to call the init function
window.onload = init;