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

QQ登录

只需一步,快速开始

查看: 548|回复: 9

[处理中] X5 APP实时定位怎么实现,要求支持后台运行实时定位

[复制链接]

805

主题

3619

帖子

7743

积分

论坛元老

Rank: 8Rank: 8

积分
7743
QQ
发表于 2018-5-29 18:08:41 | 显示全部楼层 |阅读模式
1、X5 APP实时定位怎么实现,要求支持后台运行实时定位;
2、用哪个插件可以实现;
3、具体需求是:员工的实时位置需要上报到系统中;
孤舟蓑笠翁,独钓寒江雪。
x5Demo:www.ecoolper.com
X5交流民间第一群:30057529

6

主题

4万

帖子

8420

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8420
QQ
发表于 2018-5-29 22:46:05 | 显示全部楼层
本帖最后由 liangyongfei 于 2018-5-30 09:15 编辑

获取当前位置插件方法
http://docs.wex5.com/wex5-app-question-list-2062
频繁获取地理位置,建议使用监听方法watchPosition
http://docs.wex5.com/wex5-app-question-list-2140/


程序后台运行代码background 插件
/UI2/demo/native/backgroundMode/index.w
http://docs.wex5.com/wex5-app-question-list-2005/

ios后台注意问题
http://docs.wex5.com/wex5-app-question-list-2128/

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

805

主题

3619

帖子

7743

积分

论坛元老

Rank: 8Rank: 8

积分
7743
QQ
 楼主| 发表于 2018-5-30 22:36:47 | 显示全部楼层
谢谢,结贴。
孤舟蓑笠翁,独钓寒江雪。
x5Demo:www.ecoolper.com
X5交流民间第一群:30057529
回复

使用道具 举报

27

主题

109

帖子

187

积分

初级会员

Rank: 2

积分
187
QQ
发表于 2018-6-1 15:47:22 | 显示全部楼层
liangyongfei 发表于 2018-5-29 22:46
获取当前位置插件方法
http://docs.wex5.com/wex5-app-question-list-2062
频繁获取地理位置,建议使用监听 ...

按照您提供的方法,我测试了一下,出现如下问题:
刚启动软件时执行了if (me._watchID) {
                        alert("停止监听")
                        navigator.geolocation.clearWatch(me._watchID);
                        me._watchID = null;
                }这个方法,
随后执行 navigator.geolocation.getCurrentPosition(successCallback, errorCallback);并且经纬度已经获取到
之后期望的是执行me._watchID = navigator.geolocation.watchPosition(successCallback, errorCallback, options);这个方法,但是没有执行      求解答,不知哪里出了问题而且执行顺序也有问题
回复 支持 反对

使用道具 举报

6

主题

4万

帖子

8420

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8420
QQ
发表于 2018-6-1 16:07:57 | 显示全部楼层
newProgrammer 发表于 2018-6-1 15:47
按照您提供的方法,我测试了一下,出现如下问题:
刚启动软件时执行了if (me._watchID) {
                        alert("停止 ...

每次 执行定位都要
clearWatch

关闭和开启定位是成对出现的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

27

主题

109

帖子

187

积分

初级会员

Rank: 2

积分
187
QQ
发表于 2018-6-1 16:13:59 | 显示全部楼层
liangyongfei 发表于 2018-6-1 16:07
每次 执行定位都要
clearWatch

在modelLoad中同时调用this.listenPosition()开始监听;和this.stopListen()停止监听;是否正确
回复 支持 反对

使用道具 举报

6

主题

4万

帖子

8420

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8420
QQ
发表于 2018-6-1 16:31:45 | 显示全部楼层
newProgrammer 发表于 2018-6-1 16:13
在modelLoad中同时调用this.listenPosition()开始监听;和this.stopListen()停止监听;是否正确 ...

也可以,或者调用getCurrentPosition 之前 先调用一次clearWatch  保证前一个是关闭的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

27

主题

109

帖子

187

积分

初级会员

Rank: 2

积分
187
QQ
发表于 2018-6-1 17:25:05 | 显示全部楼层
liangyongfei 发表于 2018-6-1 16:31
也可以,或者调用getCurrentPosition 之前 先调用一次clearWatch  保证前一个是关闭的 ...

写了一个定时器,但是只执行了alert("停止监听")    没有执行alert("监听位置")是什么原因,附源码
setInterval(function() {
                        // 监听位置
                        var me = this;
                        me._watchID = navigator.geolocation.watchPosition(successCallback, errorCallback, options);
                        function successCallback(position) {
                                alert("监听位置")
                                me._longitude = position.coords.longitude;
                                me._latitude = position.coords.latitude;
                                server.sendRequest({
                                        "url" : "/test/update",
                                        "async" : false,
                                        "params" : {
                                                ygId : localStorage.getItem("userid"),
                                                latitude : me._latitude,
                                                longitude : me._longitude
                                        }
                                });

                        }
                        function errorCallback() {
                                justep.Util.hint("获取当前位置失败,请检查是否开启定位");
                        }
                        var options = {
                                timeout : 1000
                        }

                        // 停止监听
                        if (me._watchID) {
                                alert("停止监听")
                                navigator.geolocation.clearWatch(me._watchID);
                                me._watchID = null;
                        }
                }, 3000);
回复 支持 反对

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
发表于 2018-7-18 19:40:04 | 显示全部楼层
liangyongfei 发表于 2018-5-29 22:46
获取当前位置插件方法
http://docs.wex5.com/wex5-app-question-list-2062
频繁获取地理位置,建议使用监听 ...

您好,我遇到watchPosition无法使用,然后用了getCurrentPosition使用正常,用了后台模式和定时器,手机不锁屏后台模式代码运行正常,手机锁屏后代码不执行,请问应该如何解决
回复 支持 反对

使用道具 举报

6

主题

4万

帖子

8420

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8420
QQ
发表于 2018-7-19 17:04:12 | 显示全部楼层
Tomosaid 发表于 2018-7-18 19:40
您好,我遇到watchPosition无法使用,然后用了getCurrentPosition使用正常,用了后台模式和定时器,手机 ...

watchPosition  和 clear 方法配合使用

js默认不能后端运行,需要用corodva插件支持后端执行
http://docs.wex5.com/wex5-app-question-list-2005/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-2-20 07:49 , Processed in 0.159162 second(s), 26 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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