Javascript PhoneGap deviceready事件未触发
我正在使用开发一个web应用程序,但无法启动Javascript PhoneGap deviceready事件未触发,javascript,android,cordova,Javascript,Android,Cordova,我正在使用开发一个web应用程序,但无法启动deviceready事件 我使用的cordova-1.5.0.js位于PhoneGap 1.5.0\lib\android\,我正在几个安卓设备上测试,但没有成功 <!DOCTYPE html> <html> <head> <title>Device Properties Example</title> <script type="text/javascri
deviceready
事件
我使用的cordova-1.5.0.js
位于PhoneGap 1.5.0\lib\android\
,我正在几个安卓设备上测试,但没有成功
<!DOCTYPE html>
<html>
<head>
<title>Device Properties Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert("onDeviceReady");
}
</script>
</head>
<body>
<p id="deviceProperties">Loading device properties...</p>
</body>
</html>
设备属性示例
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数ondevicerady(){
警报(“OnDevicerady”);
}
加载设备属性
首先,您需要将其作为应用程序而不是在web浏览器上进行测试。
第二,如果你想使用地理定位,那么你可以像这样使用它
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is ready
//
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
// onSuccess Geolocation
//
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'Altitude: ' + position.coords.altitude + '<br />' +
'Accuracy: ' + position.coords.accuracy + '<br />' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' +
'Heading: ' + position.coords.heading + '<br />' +
'Speed: ' + position.coords.speed + '<br />' +
'Timestamp: ' + new Date(position.timestamp) + '<br />';
}
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
</script>
//等待PhoneGap加载
//
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//PhoneGap已经准备好了
//
函数ondevicerady(){
navigator.geolocation.getCurrentPosition(onSuccess,onError);
}
//成功地理定位
//
成功时的功能(位置){
var element=document.getElementById('geolocation');
element.innerHTML='Latitude:'+position.coords.Latitude+'
'+
'经度:'+position.coords.Longitude+'
'+
'高度:'+position.coords.altime+'
'+
'精度:'+position.coords.accurity+'
'+
'高度精度:'+position.coords.altitudeAccuracy+'
'+
'标题:'+position.coords.Heading+'
'+
'速度:'+position.coords.Speed+'
'+
'时间戳:'+新日期(position.Timestamp)+'
';
}
//OneError回调接收PositionError对象
//
函数onError(错误){
警报('code:'+error.code+'\n'+
'消息:'+error.message+'\n');
}
我从未能让cordova-1.5.0在android(api 8)上按预期启动DeviceRady。。但是,切换到1.6.1后没有问题 你建议我如何检查错误日志?通过Android Logcat。将设备连接到计算机,您将获得设备的日志。另外,请告诉我您正在试用哪个操作系统版本?我发现了问题所在,我在移动浏览器上测试了这个示例,但没有成功,但在作为应用程序进行测试时,它运行良好。现在我很困惑,因为我在另一个例子中使用了PhoneGap地理定位,并且在移动浏览器上工作得很好。你能照亮我吗?:)那么你是说你在手机的网络浏览器上打开了上面的html页面?如果是,那么它肯定不会工作。您需要将其作为应用程序打开。。。第二,你能解释一下你是如何在移动浏览器上使用Phonegap地理定位的吗?是的,W3C地理定位API是在大多数现代浏览器中实现的,这就是你所使用的。这实际上就是我们在PhoneGap中以及在支持W3C实现的iOS和Android版本中使用的,因为它为我们节省了一些代码。