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

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

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

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

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

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

不建议使用ip定位

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

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

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

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

3.最终解决方案

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

4.建议

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

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

高德定位腾讯定位在APP上无法开启定位权限的解决方案的更多相关文章

  1. 混合元素app的H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  2. IE8 没有内容的盒子,如果有定位,浮现在其他盒子上 可能会有点击穿透没有作用的情况

    IE8 没有内容的盒子,如果有定位,浮现在其他盒子上 可能会有点击穿透没有作用的情况

  3. UI定位元素大全(跟App定位元素差不多哦)

    selenium+python自动化之元素定位 作者:一飞冲天 同样的道理,把一个页面上的元素当成是一个对象(你的女神),我们就可以通过她的属性值来找到她,比如她性别女爱好爬山---------你就可 ...

  4. “杀死” App 上的疑难崩溃

    在移动应用性能方面,崩溃带来的影响是最为严重的,程序崩了可以打断用户正在进行的操作体验,造成关键业务中断.用户留存率下降.品牌口碑变差.生命周期价值下降等影响.很多公司将崩溃率作为优先级最高的技术指标 ...

  5. iOS开发雕虫小技之傻瓜式定位神器-超简单方式解决iOS后台定时定位

    1.概述 由于公司一款产品的需求,最近一直在研究iOS设备的后台定位.主要的难点就是,当系统进入后台之后,程序会被挂起,届时定时器.以及代码都不会Run~ 所以一旦用户将我的App先换到了后台,我的定 ...

  6. iOS app上传错误集锦(转载)

    1.工程里增加了版本自动更新. 2.未增加判断网络状态的类Reachability. 3.问题:error itms -90049 This bundel is invalid. The bundle ...

  7. Android 系统api实现定位及使用百度提供的api来实现定位

    目前在国内使用定位的方法主要是 1. Android系统提供的 LocationManager locationManager = (LocationManager) getSystemService ...

  8. iOS开发检测是否开启定位、是否允许消息推送等权限

    1.iOS开发检测是否开启定位: 需要导入: #import <CoreLocation/CoreLocation.h> 代码如下: + (void)openLocationService ...

  9. app上传到App Store的快捷方法及步骤

    跳过证书的申请及配置概要文件的设置, 现在根据已有的配置概要文件及发布证书开始: 1.先在Xcode上的PROJECT和TARGETS->Build Setting->Code Signi ...

随机推荐

  1. iOS中UIWebView使用JS交互

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  2. CSS之html元素与body元素的范围

  3. ios wkwebview 跳转到新的controllerview加载页面 出现闪退问题

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { if(isF ...

  4. python语法:

    1 #开始注释,‘’‘  ‘’’可以看做是文本字符串也可以看做是块注释:”:“开始后的缩进视为一个代码块类似{}:缩进没有规定,但一般4个空格,注意:粘贴复制代码一定要检查缩进:大小写敏感: 2 数据 ...

  5. c#中的特性

    c#中的特性 特性在我的理解就是在类或者方法或者参数上加上指定的标记,然后实现指定的效果. 和Java中的注解@Annotation类似. c#内置的特性之Obsolete [Obsolete(&qu ...

  6. jruby+watir-webdriver+cucumber自动化测试环境配置

    1.安装java运行时环境,且配置环境变量 2.安装jruby环境,建议选择安装1.6.8或1.6.7版本的 3.安装需要的gem包 gem install activerecord -v='3.0. ...

  7. android开发学习 ------- android studio 同时用svn和git 进行代码管理 出现的问题

    svn和git的工作机制:  SVN 是集中式或者有中心式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要 ...

  8. asp.net调试技巧

    一眨眼的功夫,自己已经学习asp.net的有一年的功夫了.虽然称不上什么大神,但是也有一点知识的积累.就写一片调试的入门文章给那些刚刚入门迷茫的童鞋们.希望你学习了我这篇文章能从迷茫的生活中找回编程的 ...

  9. springJDBC 事物隔离

    五.Spring-jdbc的实现 第一步:导jar包 pom.xml <!--引入spring-beans节点--><dependency>    <groupId> ...

  10. I/O————字符流和流的关闭

    Reader字符输入流 Writer字符输出流 用于字符的形式读取和写入数据 FileReader与FileWriter分别是Reader与Writer的子类 public class CharScr ...