我为尝试在Android上进行地理定位而生气 我按照Cordova文档页面中的说明进行了操作 我的cordova版本是3.1.0-0.2.0
$ cordova create myApp com.mymapackage.myApp myApp
$ cordova platform add ios
$ cordova platform add android
$ cordova plugin add org.apache.cordova.geolocation
AndroidManifest包含
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
app / res / xml / config.xml包含
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>
我还复制了这个简单的例子来试用地理位置
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError, { timeout: 30000, enableHighAccuracy: true });
}
// 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');
}
我所能得到的只是一个超时错误。 我已经尝试了许多不同的目标版本/设备与ADT模拟器,Genymotion模拟器,并无法从地理定位位置获得任何东西。 通过添加ios平台,在使用xCode进行模拟时,可以非常直接地获得位置信息。
我开始对此事感到绝望。有什么想法可以提供帮助吗?
答案 0 :(得分:0)
上游报告的问题与您的问题非常相似:“地理定位watchPosition在Android 4.0.4上与Cordova 3.3.0一致超时”(issue.apache.org)
此外,已知cordova地理定位插件有多个问题,很快就会被弃用[1]。
解决方案是使用基于浏览器的常规地理定位。 MBillau [2]给出的测试试图通过插件和浏览器使用地理定位。
最后一个选项是去原生或编写自己的插件。
[1] https://issues.apache.org/jira/browse/CB-5977
[2] https://github.com/apache/cordova-mobile-spec/blob/master/location/index.html