起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9045|回复: 25

[处理中6] geolocation插件获取定位,结果一次获取到一次获取不到

  [复制链接]

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
发表于 2017-8-31 11:19:36 | 显示全部楼层 |阅读模式
weX5_3.7用geolocation插件获取定位经纬度,android的一次获取到下一次获取不到一直这样循环,IOS的没问题。
说明:用案例测试如果是纯案例代码没问题每次都能获取到位置,可是随便加个其他的插件(例如:app后台运行de.appplant.cordova.plugin.background-mode)就会出现以上情况,并且没有报错获取定位的成功和失败的回调函数都不走。
求解答插件会冲突吗?

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
 楼主| 发表于 2017-9-4 15:23:23 | 显示全部楼层
liangyongfei 发表于 2017-9-4 14:09
已经确定,确实有bug
建议重新 下载个 最新的3.7版本,解决过这个问题

下载新的3.7打包案例直接就报错了,报错信息如下:

F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:160: 错误: 找不到符号
              LocationManager myLocationManager = (LocationManager) cordova.getActivity().getSystemService(Context.LOCATION_SERVICE);
              ^
        符号:   类 LocationManager
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:160: 错误: 找不到符号
              LocationManager myLocationManager = (LocationManager) cordova.getActivity().getSystemService(Context.LOCATION_SERVICE);
                                                   ^
        符号:   类 LocationManager
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:160: 错误: 找不到符号
              LocationManager myLocationManager = (LocationManager) cordova.getActivity().getSystemService(Context.LOCATION_SERVICE);
                                                                                                           ^
        符号:   变量 Context
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:161: 错误: 找不到符号
              if(myLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
                                                     ^
        符号:   变量 LocationManager
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:167: 错误: 程序包Settings不存在
              int state = Settings.Secure.getInt(cordova.getActivity().getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
                                                                                                     ^
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:167: 错误: 程序包Settings不存在
              int state = Settings.Secure.getInt(cordova.getActivity().getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
                                                                                                                                    ^
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:167: 错误: 程序包Settings不存在
              int state = Settings.Secure.getInt(cordova.getActivity().getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
                                  ^
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:168: 错误: 程序包Settings不存在
              if (state == Settings.Secure.LOCATION_MODE_OFF) {
                                   ^
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:177: 错误: 找不到符号
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            ^
        符号:   类 Intent
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:177: 错误: 找不到符号
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                                ^
        符号:   类 Intent
        位置: 类 BaiduLocation
      F:\x5\model\Native\demo位置\build\src\platforms\android\src\com\justep\cordova\plugin\baidulocation\BaiduLocation.java:177: 错误: 找不到符号
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                                       ^
        符号:   变量 Settings
        位置: 类 BaiduLocation
      :compileReleaseJavaWithJavac FAILED
      
      BUILD FAILED
      
      Total time: 36.192 secs
回复 支持 1 反对 0

使用道具 举报

发表于 2017-9-1 10:52:13 | 显示全部楼层
de.appplant.cordova.plugin.background-mode   是 APP 隐藏后台后可以调用的!
http://docs.wex5.com/wex5-app-question-list-2005/

是不是APP 激活状态,代码无法调用!隐藏后就可以调用了??

如果是稳定的!可以将代码提取出来!在隐藏和激活,不同的状态下调用两次试试
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
 楼主| 发表于 2017-9-1 13:42:54 | 显示全部楼层
liangyongfei 发表于 2017-9-1 10:52
de.appplant.cordova.plugin.background-mode   是 APP 隐藏后台后可以调用的!
http://docs.wex5.com/wex5 ...

我用案例/UI2/demo/native/geolocation测试,在里面加了获取设备信息插件device,加了一句alert(device.platform);打包后点击获取设备位置信息测试,结果就是一次获取得到,一次获取不到。apploader运行是没问题的。麻烦测试下是不是3.7的geolocation插件问题。附上截图:
增加的两行代码:
01.png

02.png


测试结果:
第一次点击:获取设备位置信息
04.png

第二次点击获取设备信息
03.png
回复 支持 反对

使用道具 举报

发表于 2017-9-1 16:28:17 | 显示全部楼层
634658443 发表于 2017-9-1 13:42
我用案例/UI2/demo/native/geolocation测试,在里面加了获取设备信息插件device,加了一句alert(device.p ...

啊! 明白了! 因为你是调用的corodva插进,应该字啊回调函数中获取!而不是外边执行代码!

有可能 corodva 插件的方法是 异步执行的! 但是alert执行 速度过快了!参数还没返回呢!
应该在成功回调中alert才对!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
 楼主| 发表于 2017-9-1 16:52:39 | 显示全部楼层
liangyongfei 发表于 2017-9-1 16:28
啊! 明白了! 因为你是调用的corodva插进,应该字啊回调函数中获取!而不是外边执行代码!

有可能 coro ...

alert放到成功的回调结果还是一样,一次成功获取到,一次没获取到也不走失败的回调。在weX5_3.6测试是可以的。我的项目也是从3.6升级到3.7后才出现这个问题的。
回复 支持 反对

使用道具 举报

发表于 2017-9-1 17:23:46 | 显示全部楼层
634658443 发表于 2017-9-1 16:52
alert放到成功的回调结果还是一样,一次成功获取到,一次没获取到也不走失败的回调。在weX5_3.6测试是可 ...

你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!
你是什么手机测试的??型号版本说下!
另外试试其他的 手机是否正常?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
 楼主| 发表于 2017-9-4 09:04:41 | 显示全部楼层
liangyongfei 发表于 2017-9-1 17:23
你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时 ...

我是小米5手机和三星手机(SM-N9009)测试的。
回复 支持 反对

使用道具 举报

发表于 2017-9-4 11:26:16 | 显示全部楼层
634658443 发表于 2017-9-4 09:04
我是小米5手机和三星手机(SM-N9009)测试的。

其他手机测试过吗??
是所有手机都存在这个问题吗??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

46

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
 楼主| 发表于 2017-9-4 12:42:38 | 显示全部楼层
liangyongfei 发表于 2017-9-4 11:26
其他手机测试过吗??
是所有手机都存在这个问题吗??

vivo的手机测试过也是这样的,其他的没做过测试。ios的没问题就是android的有问题。
回复 支持 反对

使用道具 举报

3

主题

304

帖子

798

积分

高级会员

Rank: 4

积分
798
QQ
发表于 2017-9-4 13:54:35 | 显示全部楼层
geolocation插件在android上使用了baidu的定位插件,如果需要使用,请到百度的相关网页申请一下授权使用的key,这个在编辑app的插件页面有说明
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 16:34 , Processed in 0.079361 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表