码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-10-31 22:11:11      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:html   js   android   web   定位   

        最近在做手机打开一个网址,然后定位具体的位置,本来觉得很简单的,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插件实现定位的。具体底层实现原理还需要进一步探究,已经咨询百度相关人员,后面会跟进博客信息。百度定位组件示例

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

标签:html   js   android   web   定位   

原文地址:http://blog.csdn.net/xiaowanzi80hou/article/details/40661501

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!