gpt4 book ai didi

javascript - 当位置模式设置为 "Device only"时,总是会达到关于地理定位的超时

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:52 26 4
gpt4 key购买 nike

我拥有一个 Ionic 应用程序 (Cordova)。

我有这段 JS 代码旨在获取 Android 设备的位置:

$cordovaGeolocation.getCurrentPosition({
enableHighAccuracy: true,
timeout: 15000
})

$cordovaGeolocation 来自 ng-cordova库。
我成功检查了插件 org.apache.cordova.geolocation 已更新为最新版本。

一些用户提示第一次查询多了 15 秒!
请注意,超时设置为 15000 毫秒 => 15 秒。
这意味着设备没有成功建立位置。

经过调查,我发现了问题:
这些用户在他们的设备设置中将他们的定位模式设置为“仅限设备”或称为“仅限 GPS”。

当用户切换到“高精度模式”时,整个过程不到一秒钟即可完成。

如何在不建议用户切换到“高精度模式”的情况下解决此问题?是错误吗?

请注意,我还使用 enableHighAccuracy: false 进行了测试,但结果相同。

我不是唯一遇到这个“大”问题的人:
Phonegap - Geolocation with PowerSaving and GPS Only Mode
但无人回答..

最佳答案

我见过你issue on github .我正在使用 ng-cordova 插件。我使用下面的解决方法让 GPS-only 工作。由于低精度速度更快,超时时间为 4 秒。

$cordovaGeolocation.getCurrentPosition({enableHighAccuracy: false, maximumAge: MAXAGE, timeout: 4000})
.then(
function (position) { //success Low-Accuracy
console.log('getCurrentPosition: HighAccuracy false: Ok!');
//[..]
},
function(err) { //error Low-Accuracy
console.log(err);
$cordovaGeolocation.getCurrentPosition({enableHighAccuracy: true, maximumAge: MAXAGE, timeout: 10000})
.then(
function (position) { //success High-Accuracy
console.log('getCurrentPosition: HighAccuracy true: Ok!');
//[..]
},
function(err) { //error High-Accuracy
console.log('getLocation: ERRO: ' + ERROR[err.code] + ' => ' + err.message);

//[..]
}
);
}
);

关于javascript - 当位置模式设置为 "Device only"时,总是会达到关于地理定位的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29411697/

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