gpt4 book ai didi

javascript - Cordova 地理定位插件不适用于 android

转载 作者:行者123 更新时间:2023-11-30 06:51:49 25 4
gpt4 key购买 nike

我正在使用 cordova 地理定位插件在 android 上显示纬度和经度。有很多与此相同的问题所以我阅读并尝试了他们的解决方案但无法解决问题。下面的代码在浏览器上完美运行。

我尝试了 3 种方法,首先:“navigator.geolocation.watchPosition”,它在模拟器 (Android Studio) 中返回错误结果 (37.42,-122.08),并且在设备中不返回任何内容。

我还尝试了“navigator.geolocation.getCurrentPosition”,同时将“enableHighAccuracy”设置为“true”和“false”,我收到超时错误警报。

当我删除 deviceready 时,我没有得到超时,所有三种方法的结果都是错误的。

(function (window) {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {

var minAccuracyInMetres = 50;
var positionWatcher;

positionWatcher = navigator.geolocation.watchPosition(
geolocationSuccess2,
geolocationError2,
{ maximumAge: 0, timeout: 100000, enableHighAccuracy: true });

function geolocationSuccess2(position) {
// Reject if accuracy is not sufficient
if (position.coords.accuracy > minAccuracyInMetres) {
return;
}

// Only single position required so clear watcher
navigator.geolocation.clearWatch(positionWatcher);

alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};

function geolocationError2(error) {
console.warn("Error while retrieving current position. " +
"Error code: " + error.code + ",Message: " + error.message);
}

//2

var onSuccess1 = function (position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};

function onError1(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n' + 'highaccuracy: true');
}
var options1 = { maximumAge: 0, timeout: 300000, enableHighAccuracy: true };
navigator.geolocation.getCurrentPosition(onSuccess1, onError1, options1);
//3
var onSuccess = function (position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n')
};

function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n' + ' high accuracy:false');
}

navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: false, timeout: 300 * 1000, maximumAge: 0 });
}
})(window);

我从 stackoverflow 的另一个问题中得到 watchPosition 部分。我使用 Cordova 版本:6.4.0。我删除了插件并再次尝试,但它没有用。我正在测试的设备是联想平板电脑。非常感谢。

更新:我的地理位置版本是:2.4.0 重要吗???

最佳答案

经过两天的努力,我在位置设置中打开了“高精度”。该应用程序现在可用!!!

关于javascript - Cordova 地理定位插件不适用于 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com