美好的一天,我正在尝试使用Phonegap制作Android应用程序。我想每1秒更新一次值。出于某种原因,我没有得到任何价值。我使用Phonegap-2.9.0
,我的设备是HTC Wildfire S
,安卓版2.3.5
。这是我的代码,
<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", loaded, false);
function loaded() {
startWatch();
}
function startWatch() {
var options = { frequency: 1000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}
function stopWatch() {
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
}
function onSuccess(acceleration) {
var element = document.getElementById('accelerometer');
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
}
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<div id="accelerometer"></div>
</body>
我在这里做错了吗?你的帮助真的很明显。 TNX。
答案 0 :(得分:0)
解决方案尝试此操作,您必须在函数onDeviceReady()
范围内使用此方法watchAcceleration()
才能正常工作
根据{{3}}
通过全局navigator.accelerometer对象进行访问。 虽然该对象附加到全局范围导航器,但在deviceready事件之后才可用。
在你的情况下loaded()
是onDeviceReady()
另一方面你没有功能init()
你只有
document.addEventListener("deviceready", loaded, false);
将您的第init()
行放入功能document.addEventListener("deviceready", loaded, false);
然后<body onload="init()">
所以我的意思是将值为init()
的属性onload添加到代码底部的<body>
标记