首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cordova Multiple navigator.geolocation.getCurrentPosition()?

Cordova Multiple navigator.geolocation.getCurrentPosition()?
EN

Stack Overflow用户
提问于 2015-07-28 17:17:20
回答 1查看 278关注 0票数 1

我有几个GPS定位请求通过我的HTML文件嵌入在其他功能。我正面临一个问题,当应用程序打开时,如果位置未打开(或者在请求被激发后位置被关闭)。然后,我将不得不重新启动应用程序,以便位置请求再次工作。

如果它失败一次,那么即使位置被重新打开,之后的每一个请求都将是错误的。

为什么会发生这种情况?

代码语言:javascript
运行
复制
var Geo11={};


   navigator.geolocation.getCurrentPosition(success11,error11, { enableHighAccuracy: true, maximumAge: 5000, timeout: 20000 });



    //Get the latitude and the longitude;
    function success11(position) {
        Geo11.lat = position.coords.latitude;
        Geo11.lng = position.coords.longitude;
       calcRoute(Geo11.lat, Geo11.lng);
    }


            function error11(error){

                            alert('Please check your GPS setting, then reload.');

    }
EN

回答 1

Stack Overflow用户

发布于 2015-07-29 08:10:09

首先,您必须进行适当的错误处理。请参见代码片段。

代码语言:javascript
运行
复制
function(error) {
        if(error.code == 0){
        // unknown error
        } else if(error.code == 1) {
        // permission denied
        } else if(error.code == 2) {
        // position unavailable
        } else if(error.code == 3) {
        // timeout
        }
        console.log(error.message);
    },

其次,在错误处理之后,您还必须实现重载。

注意:由于GPS是从关闭状态打开的,GPS硬件组件正在(重新)启动,并且在缺乏适当的超时和重新加载机制的情况下,它将不会按预期工作。

话虽如此。在我看来,在你的用例中,最好在调用geolocation之前向用户询问位置权限。这里有一个非常好的here示例供您参考。

另外,this answer也值得一读。

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

https://stackoverflow.com/questions/31672136

复制
相关文章

相似问题

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