微信7.0升级后 高德地图在微信内置浏览器定位失败

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qy_0626/article/details/86550821

此文为博主原创 转载请注明出处 尊重一下笔者的劳动成果 ⑩分感谢 

场景:微信7.0 苹果可以获取到定位 安卓获取不到定位

原因:微信升级7.0做了安全限制 导致使用http的定位不能正常使用

解决办法:升级https 且是正规的SSL证书 自签名的证书 证书链不完整也是不行的

注意:页面使用jssdk都需要使用https调用

微信升级7.0之前 公众号网页一直稳定的运行,升级7.0以后问题爆发 体现在使用高德地图上无法获取定位问题,打印高德地图返回的信息  提示是 Geolocation permission denied 查阅文档 说可能是以下问题导致:

  • Geolocation permission denied:用户禁用了定位权限,需要用户开启设备和浏览器的定位权限,并在浏览器弹窗中点击“允许使用定位”选项。   
  • Geolocation permission denied:浏览器禁止了非安全域的定位请求,比如Chrome、IOS10已陆续禁止,这时候需要升级站点到HTTPS。

详细查看文档:Geolocation的定位流程以及定位失败的原因

因为手机其他浏览器开启定位都可以获取到定位 唯独在微信内置浏览器不行 然后一直纠结在不是微信没有定位权限了 直到昨天排查 有人提出是微信升级7.0以后出现的问题 而且同类型公众号的高德地图定位是可以使用的 抓包对比了一下 只有https和http的不同,所以 我去验证了微信7.0升级后苹果和安卓的对比 苹果是可以正常获取定位授权 只有安卓微信7.0以后获取不到  7.0之前的版本是可以的

于是去百度了微信7.0升级的影响以及有没有人和我同问题的 ,终于在一个博客下发现原由:

由于微信7.0版本升级了对https的安全限制,在微信7.0版本及以上版本使用http协议访问定位组件会导致定位失败。

另外ISO10也限制了非安全域的浏览器定位请求。

 博客原文链接:安卓微信7.0地图无法定位问题

另外附上配置阿里云免费SSL证书的博客:阿里云获取免费SSL证书 附开启阿里云端口图文详解

其他同类问题博客: 微信7.0之后,使用网页百度定位SDK,定位失败

猜你喜欢

转载自blog.csdn.net/qy_0626/article/details/86550821