PhoneGAP 地理位置在 Android 中不起作用
Posted
技术标签:
【中文标题】PhoneGAP 地理位置在 Android 中不起作用【英文标题】:PhoneGAP Geoloaction NOT WORKING in Android 【发布时间】:2013-11-20 10:19:22 【问题描述】:我正在使用 html5 + PhoneGap。 在我的应用程序中,我需要执行地理定位以获取纬度和经度。
当我搜索时,我从PhoneGap Website 获得了示例代码
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady()
alert('deviceready');
//navigator.geolocation.getCurrentPosition(onSuccess, onError);
navigator.geolocation.getCurrentPosition(onSuccess);
// 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: ' + position.timestamp + '<br />';
// onError Callback receives a PositionError object
//
function onError(error)
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
但它不起作用! 它总是显示 正在观看地理位置... 但未加载详细信息。 我已经搜索了这个问题,但我没有得到正确的解决方案。
我发现这里发布了同样的问题,但解决方案在这:(
如何使用 PhoneGap 获取纬度和经度的详细信息?
任何人都可以帮助我???
【问题讨论】:
【参考方案1】:大约一年前我遇到了类似的问题,我的解决方案是重新启动我的手机 - 当时是一个 X Android 4.0。不记得 phonegap 版本,但这是我不应该使用 phonegap 的一个完美例子。
如果这不起作用,问题可能与高精度选项有关:http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#Geolocation 尝试将 enableHighAccuracy 切换为 false/true。
【讨论】:
是的,我试过 navigator.geolocation.getCurrentPosition(onSuccess, onError, enableHighAccuracy:true );但仍然无法正常工作:(【参考方案2】:某些 android 设备和模拟器仅支持高或低 GPS 精度。
尝试以低精度和高精度运行您的代码。
function onDeviceReady()
var options = enableHighAccuracy: true ; // also try with false.
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
如果这不起作用,请尝试在选项中调整超时,最后可能是您没有正确设置 Android 项目的 GPS 权限。检查应用清单以查看您设置或未设置的权限。
【讨论】:
嗨..@David Rust-Smith 我已经在 app/res/xml/config.xml 和 app/AndroidManifest.xml 中设置了所有权限。但它不起作用:( 我通过docs.phonegap.com/en/2.7.0/…【参考方案3】:我认为原因是我们总是使用浏览器的 html5 实现而不是原生的。尝试确保您使用的是 cordova 原生函数来定位位置。
【讨论】:
以上是关于PhoneGAP 地理位置在 Android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Websocket在使用phonegap的android应用程序中不起作用
<select> 在 Android 2.3.3 上的 Phonegap 应用程序中不起作用
Sencha Touch 2.3.1 + Phonegap 3.4 jsonp 在 Android 中不工作,但在浏览器上工作