微信小程序定位总结

1. 背景

工作需要, 一个web的项目嵌入到微信小程序web-view里面使用, 其中用到了微信的定位接口 wx.getLocation.

2. 遇到的问题

a. 使用微信的JSSDK中的getLocation方法

存在定位不准, 某些android手机上定位异常的问题, 所以废弃了.

b. 使用微信小程序自身的getLocation方法

仍然存在定位不准, 定位慢的问题...后来发现, 在web-view所在的小程序页面中, 隐藏一个微信自己的map控件, 定位速度大大提高, 并且准确性也比较高(WTF???)

但是, 后来遇到这个问题, 导致彻底放弃用微信的定位了(太TMD坑了...):

安卓wx.getLocation用数据流量经常获取不到位置

c. 直接使用浏览器的定位

最终的做法, 竟然是直接使用浏览器自身的定位完成的





	
	
	
    获取定位
	
	
	



浏览器定位的方法, 在android手机上直接可以使用, 但是由于IOS手机安全性的问题, 只能基于https才给定位所以把网站改成https方式.

另外一个问题就是, 由于我们在https网站中, 加载的Openlayer地图是http协议的, 导致在IOS下, 要么不能显示地图, 要么无法定位...最终的解决方法是: 父页面是HTTPS的, 父页面中加载HTTP协议地址的Openlayer地图, 定位的代码放在父页面的一个隐藏iframe中, 通过JS向父页面传递定位信息...最终问题解决.

具体请参考:

解决window.navigator.geolocation.getCurrentPosition在IOS10系统中无法进行地理定位问题

 

 

你可能感兴趣的:(小程序开发)