首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当位置模式设置为“仅限设备”时,总是会达到地理位置的超时。

当位置模式设置为“仅限设备”时,总是会达到地理位置的超时。
EN

Stack Overflow用户
提问于 2015-04-02 11:22:12
回答 2查看 3.6K关注 0票数 2

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

我有这个JS代码,目的是获取Android设备的位置:

代码语言:javascript
运行
复制
$cordovaGeolocation.getCurrentPosition({
                    enableHighAccuracy: true,
                    timeout: 15000
                }) 

$cordovaGeolocation来自吴-科多瓦库。

我成功地检查了插件org.apache.cordova.geolocation是否更新了上一个当前版本。

有些用户抱怨第一次查询超过15秒!

请注意,超时设置为15000毫秒=> 15秒。

这意味着设备没有成功地建立该位置。

经过调查,我发现了这个问题:

当用户切换到“高精度模式”时,整个工作时间不到一秒钟。

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

注意,我也用enableHighAccuracy: false进行了测试,但结果是相同的。

我不是唯一一个有“大”问题的人:

带PowerSaving和GPS单模式的音隙地理定位

但没人回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-08 07:47:21

我为这个问题奋斗了三天,没有解决办法。只是不起作用,而且从来没有。所以我会尝试使用另一个工具,因为cordova不适合地理定位。现在我专注于java,我希望正确地做到这一点(ios是一个奖励,当我选择cordova)。

票数 1
EN

Stack Overflow用户

发布于 2015-07-08 13:07:09

我一整天都在为同样的问题而挣扎,我发现用于安卓的cordova地理定位插件使用了WebView的地理定位功能,不知道为什么,但是WebView 'gps‘是不够的。

所以,我已经开始寻找一些替代方案,并找到了https://github.com/louisbl/cordova-locationservices

插件非常棒,但需要android播放服务。我为地理定位编写了小角度服务:

代码语言:javascript
运行
复制
 multiplatformGeolocation.inject = ['$q'];
    function multiplatformGeolocation ($q) {
        var self = this;

        this.getCurrentPosition = function (opts) {
            var q = $q.defer();

            self.locationModule.getCurrentPosition(function (result) {
                q.resolve(result);
            }, function (err) {
                q.reject(err);
            }, opts || self.positionOptions);

            return q.promise;
        };

        this.init = function () {
            var PRIORITY_BALANCED_POWER_ACCURACY = 102;
            self.positionOptions = {
                timeout: 20000,
                enableHighAccuracy: false,
                priority: PRIORITY_BALANCED_POWER_ACCURACY
            };

            self.locationModule = window.cordova && window.cordova.platformId == 'android' ? LocationServices : navigator.geolocation;
        }
    }

请注意,我使用了PRIORITY_BALANCED_POWER_ACCURACY,它允许设备使用网络查找当前位置,如果gps被禁用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29411697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档