高德定位腾讯定位在APP上无法开启定位权限的解决方案

【备注】公司项目中遇到的问题,如果你在团队工作其中定有不少配合方面的问题,其中的思路是可以借鉴的,因为这也许正是你们现在遇到的问题,总结的不好的地方还请多多指教

 

因为项目需求的确定,定位成了必不可少的环节,在这个环节上尝试了许多方法都不尽人意。现在总结以下几点:

 

1.项目应用套壳框架(及时云)的问题

主要大方面的问题还是因为套壳软件的定位没有处理好,初期智慧海洋的定位完全没问题,使用的是及时云内置api定位,而宁波渔信通因为一些原因被阉割了许多功能,包括许多场景应该使用的定位。经过会议沟通并提出意见,相关负责人开始重视并处理了ios定位相关问题,但是安卓版部分机型始终存在定位方面的bug。

2.第三方定位插件出现的问题

由于定位阉割的原因,于是开始尝试第三方插件,最终决定使用高德地图的服务,很遗憾套壳应用并不能很好的支持相关的服务(无法开启定位权限,ios解决,安卓部分机型无法出现提示),使用ip定位可以解决问题,但是会出现很大的偏差。

不建议使用ip定位

IP地址和手机号码有相似的地方,比方说划分重庆地区的地址是一个范围,而四川又是另一个范围,正常情况下,但只是大概的划分,并一特别准确,

比方说重庆的ip地址不够用了,从四川调一部分过来,那么你在重庆用这部分的IP上网,那么显示的就是四川的。如果是从广东借的就显示是广东的。当过段时间官方的分配者会更新的,至于时间是多长,可能是一星期,一个月,一年,都有可能。

还有就是现在的家庭一般都是ADSL拨号上网,每次拨号分配的IP地址都是不固定的,如果运营商所跨的地理范围比较大的话,比如(假设),四川电信和广东电信是一个老总,一套领导班子管的,那么他手里既有广东的IP,又有四川的。而你拨号的时候是自动分配的,有可能这次给的是四川的,下次给的是广东的。

当然上面是假设,不是真的存在。只是做个比喻,IP地址一般情况下是准确的,但不排除有错误的,就像手机号码一样,如果我有钱,有精力,一定要把我北京的号码改成南京去用,在理论上是可以的,但在实际上,要花费大量的资源,因为改个号容易,但其他的配套的其他东西改起就麻烦了,所谓牵一发而动全身就是这个道理。

3.最终解决方案

经过多种尝试,最终发现腾讯定位可以很好的弥补高德定位部分机型不可定位的问题。所以项目中使用了两个第三方定位插件,必须通过触发机制同时触发两个不同的服务,哪个服务定位成功就执行哪个服务转而去执行相应的方法。

4.建议

项目中不推荐使用多个定位服务,有点冗余,但是这的确是当前项目最好的处理方法。

从根本上我们应该改造项目应用套壳框架(及时云)的问题,完善各类api,提高开发效率

高德定位腾讯定位在APP上无法开启定位权限的解决方案

上一篇:Spring源码解析 – AnnotationConfigApplicationContext容器创建过程


下一篇:vue+axios 前端实现登录拦截(路由拦截、http拦截)