手机Web定位 解决国行安卓手机没有GMS包

        最近在做手机打开一个网址,然后定位具体的位置,本来觉得很简单的,HTML5就能解决这问题了,后来发现问题还是很多。

       首先是很多安卓手机不支持HTML5,判断navigator.geolocation是true,但是就是不返回经纬度信息,查资料发现很多国行很多手机都是这样,GMS(Google Mobile Service)被阉割了。解决这种方法可以恢复网络定位。但是咱们这手机网页是对所有用户开放的,显然不合理。

       后来查资料发现安卓浏览器有些是可以的,然后下载了安卓所有常见的浏览器测试,确定四款浏览器可以,分别是QQ浏览器、百度浏览器、海豚浏览器、搜狗浏览器,但是这四个浏览器都不是很常用的,尤其是UC浏览器和Chrome浏览器,有些手机自带的浏览器用HTML5可以,但是用UC浏览器测试了居然不行,郁闷至极。

        后来想到可以用IP定位,如果HTML5能定位,就用HTML5的,不行就用IP定位,这个查了百度的接口,不行,首先IP定位的误差很大,百度的ip定位接口只提供用户所在城市接口。

        也想到手机号码定位,找到两个这样的代理服务商,他们是直接跟电信联通移动三大运营商合作的,分别是好服务和万特锐,跟好服务聊得比较多,价格方面也比较合理,调用接口划到1毛钱一次,但是那个考虑到安全性问题需要先申请授权,用户申请可以了,才可以定位,这个流程就比较头疼了,有时候一天,有时候两三天,如果想及时定位,那肯定不行。

        中间还想了很多方法,开发APP、用微信的定位、开发个浏览器插件等,但是觉得不都不好。最后在百度定位开发文档发现有个web定位组件接口,可以获取了经纬度,测试了很多手机(包括没有GMS包的安卓手机)都行。查资料发现这个是百度今年7月刚出来的接口,用的是W3C开放的WebComponent,也就是自己定义的标签,后面通过调用自己开发的一个JS插件实现定位的。具体底层实现原理还需要进一步探究,已经咨询百度相关人员,后面会跟进博客信息。百度定位组件示例

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。