wjsljc
wjsljc
  • 发布:2017-06-12 12:08
  • 更新:2017-06-26 19:04
  • 阅读:5845

安卓机获取当前地理信息问题plus.geolocation.getCurrentPosition

分类:HTML5+

我在使用基座进行真机调试的时候可以获取到地理信息,但是打包出来却根本就走不进去了,一直抱一个错误,IOS却可以,请问是怎么回事?需要配置什么吗?
代码如下


报错如下:

配置权限如下:

2017-06-12 12:08 负责人:无 分享
已邀请:

最佳回复

wjsljc

wjsljc (作者)

这个终于解决了,十分感谢DCloud客服Trust提供的文档以及支持,在此与大家分享一下关于这个问题的解决方案。
首先,这个问题是安卓机(尤其在低端机中)调用plus.geolocation.getCurrentPosition无法获取到准确的地理位置(就是省市级街道门牌号等等),而IOS则可以。
起初,部分安卓机报的是类似与“没有可使用的获取工具”之类的错(显示的是英文,我记不到原文了),部分更加智能的安卓机则会更直观地打印出log,吧整个返回的对象打印出来会发现,安卓机中少了address这个对象,而这个对象就是用来存放详细信息的。
详细可以参考文档http://www.html5plus.org/doc/zh_cn/geolocation.html#plus.geolocation.PositionOptions以及http://ask.dcloud.net.cn/article/29
从文档中不难看出,默认调用地图的顺序是高德,百度最后是系统,而使用系统是无法获取到详细的位置信息的(所以我缺少了address这个返回对象)。
而使用高德以及百度地图是需要配置权限的,具体的方法在http://ask.dcloud.net.cn/article/29
这里需要注意的是


这里的packageName是

你打包的这个名字,否者则会出现

的错误,并叫你跳转到相应地址查看错误码(以高德为例)。
最后,只需要配置成功即可正确调用了。
附上代码,帮助那些刚刚入门的朋友

南宫萧尘

南宫萧尘

用了地图,不配置相关IDE,你也算比较少见的了.

  • wjsljc (作者)

    起初我用的安卓机使用system是可以获取到的,ios不配置也是可以获取到的,这个你可以试一下

    2017-06-15 11:30

  • wjsljc (作者)

    不配置并不是代表不能使用,只是返回值少了相关字段而已,而且他会默认检测高德、百度和系统,比如你可以使用js通过system中的经纬度获取详细地理位置,这也是一种解决方案,我都尝试过了。

    2017-06-15 11:32

wen如故i

wen如故i

使用这个方法,有的地方,多刷新几次,位置不准确。相差几十m,有的地方直接获取不到位置,刚刚下班,出外面吃饭,路上试了一路。

该问题目前已经被锁定, 无法添加新回复