解决Android端微信浏览器每次调用百度地图API都会弹出允许位置信息弹窗问题

不知道大家有没有遇见过,开发微信公众号的时候,需要使用到当前的位置信息跟某一个地址的位置信息计算出这两点之间的距离,这个时候呢,无疑百度的API是比较好用的,比如说哈,有一个应用场景是这样的,数据库里面只存了地址信息,没有存对应的经纬度信息,这个时候呢,百度地图的API有给我们提供了一个叫做正逆地理编码的API,可以很方便的让我们根据地址信息解析出它的经纬度信息,然后拿到当前的定位信息,这样就可以计算出这两个地方他们之间的距离了,然后呢,本来以为这样的解决方式是很完美的,然后在系统浏览器上运行也没有任何的问题,但是呢,偏偏在Android端的微信浏览器(IOS的微信浏览器不会有这个问题)上就出现了问题,原因是什么呢?

经过调试我发现,微信浏览器每次点返回键都会刷新我们的页面,然后它也没有帮我们记住已经允许过获取位置信息这个权限了,所以它会再次向我们请求权限,这个就很烦了

接下来重点来了,解决办法其实很简单,微信浏览器不帮我们记住已经允许过权限了,那我们就自己写代码(前端可以用js的sessionStorage,后台可以用session)记住我们已经允许过权限了,于是自然就会想到使用session把我们的定位信息存起来,但是每次定位都去服务器交互的话感觉比较麻烦,所以我选择了sessionStorage来记住我们的定位信息,于是就有了下面的代码

测试一下,问题果然得到了完美的解决

附上效果图

解决Android端微信浏览器每次调用百度地图API都会弹出允许位置信息弹窗问题_第1张图片

 

你可能感兴趣的:(微信公众号)