地理位置不断请求许可

Posted

技术标签:

【中文标题】地理位置不断请求许可【英文标题】:geolocation keeps on asking for permission 【发布时间】:2020-06-04 13:23:42 【问题描述】:

我正在测试地理定位 API,发现如果我刷新页面,页面会不断请求权限,所以我将坐标数据保存到本地存储,但它不起作用!有没有办法只授予一次权限???

const COORDINATION = "coords";

function saveCords(coordsOBJ)


    localStorage.setItem(COORDINATION,JSON.stringify(coordsOBJ));





function handleGeoError(position)
    console.log("Cant find position");


function handleGeoSuccess(position)
   // console.log(position);
   const latitude = position.coords.latitude;
   console.log(latitude);
   const longitude = position.coords.longitude;
   const coordsOBJ = 
       latitude,//latitude = latitude,
       longitude//longitude = longitude
   
   saveCords(coordsOBJ);



function askForCoords()

    navigator.geolocation.getCurrentPosition(handleGeoSuccess,handleGeoError);



function loadCoordinate()
    const loadedCords = localStorage.getItem("COORDINATION");
    if(loadedCords === null)
    
         askForCoords();
    


function init()
    loadCoordinate();

【问题讨论】:

【参考方案1】:

您的代码中似乎有一个错字,您在 COORDINATION 中添加了引号,但它是一个变量而不是字符串。

尝试改变:

const loadedCords = localStorage.getItem("COORDINATION");

收件人:

const loadedCords = localStorage.getItem(COORDINATION);

【讨论】:

耶稣.... 非常感谢!因为这个愚蠢的问题,我已经浪费了一天的时间......

以上是关于地理位置不断请求许可的主要内容,如果未能解决你的问题,请参考以下文章

Safari 通过地理位置多次请求许可

核心位置未请求用户许可

未经许可的地理定位[重复]

UIWebView 正在请求位置权限

如何在 Cordova iOS 应用程序中请求位置许可时更改警报文本?

如何在科尔多瓦上删除 ios 地理定位身份验证请求消息