HBuilder后台保活开发(后台自动运行,定期记录定位数据)

Stella981
• 阅读 484

http://ask.dcloud.net.cn/question/28090

后台自动运行,定期记录定位数据

分类: HTML5+

各位新年好

小弟以前用hbuilder开发过几个项目,现在有一新需求项目,在考虑是否使用它来实现:

需要APP在后台能定期离线监控用户定位数据,使用的是百度地图,我已经知道可以离线获取定位信息,但不知道如何能后台运行(APP不关闭,切换到后台,或者熄屏后它能继续运行),在后台定期(如20分钟)获取用户当前的位置,并记录在本地(如localstorage),然后上线时向服务器提交这些数据。

想请教各HBUILDER大神,或者DCLOUD的技术员们,这个是否可行,并且有没最简便的方法(如不需要触碰原生插件开发是最好),需支持android与IOS,谢谢。

2017-02-04 17:38  分享

13 个回复

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

Sychel

app的事件有pause和resume,你可以在pause时候启动你的位置监听服务。但是Android会杀进程,需要在系统里面手动设置一下。但是demo用下来感觉不稳定。内存占用也相当大。
附赠一段以前写的测试小demo

复制代码//后台运行监听器 document.addEventListener("pause",function(){ if(interval==null){ interval = setInterval("listenner()",10000); } }); //回到前台监听器,添加回到程序运行的事件,清除监听器 document.addEventListener("resume", function(){ window.clearInterval(interval); interval = null; }, false ); /** * 定时监听服务 */ function listenner(){ //先获取当前地理位置 plus.geolocation.getCurrentPosition(function(pos){ //后台实时定位交互 //------交互逻辑 //拿到数据之后提示 plus.push.createMessage("提示标题","{text:\"回执的json数据\"}",{title:"测试":附近有好玩的地方哦~",cover:true}); //播放一段提示语音 plus.audio.createPlayer("_www/audio/scenicAlert.wav").play(function(){ plus.audio.createPlayer("_www/audio/lookAlert.wav").play(); }); },function(e){ console.log("Gelocation Error: code - "+e.code+"; message - "+e.message); },{timeout:5000,provider:'baidu'}); }

2017-02-04 18:10

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

啸天

我来说下我的痛苦经历(IOS),Android 因为非原生,也做不到所谓的双进程保活,这里略过:

1.HBuilder 打包的IOS应用并不能做到后台长久保活,即使你设置了后台定位,原因是DCloud的云端打包机没有支持

  1. 设置,隐私,定位,更改为始终,还是不能做到长久保活

所以后来采取这样的方法:

1.manifest.xml 里配置后台运行模式,配置后台定位、后台播放音乐

  1. js 代码做定时任务,播放无声音乐,每2分钟播放 1秒(保证到了后台3分钟的时效时,重新激活下应用,再次延长3分钟)
  2. 安装到IOS上后,手动去设置里,隐私,定位,更改为始终

以上就这些,如果是IOS离线打包的,可以做到后台长久定位,至于Android 的,就我手头的华为、小米、魅族机器来测试看,微信、QQ也并不是真正的双进程保活,之所以杀不掉,是被厂商加入了白名单(华为),小米机器一杀一个准

2017-02-06 09:29

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

Sychel

对了,主动后台运行,iOS貌似不可以,年代太久记不清了。Android如下:

复制代码`/**

  • 后台运行

*/
function backRunning(){ var main = plus.android.runtimeMainActivity(); main.moveTaskToBack(false); }`

2017-02-04 18:16

  • HBuilder后台保活开发(后台自动运行,定期记录定位数据)

    pango (作者)

    谢谢回复,我之前查好像IOS有一个叫UIbackendmode的东西,不知道是否可行,让APP进入后台(熄灭屏幕)后能定期监听位置

    2017-02-04 19:06

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

stock2

不错楼上测试比我们之前做的方式更加优秀.
类似这个服务,最好是hbulider做成服务,类似闹钟.可以激活.进程可以通过服务唤醒的.

2017-02-10 09:18

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

1019422167@qq.com

mark

2017-05-05 09:52

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

大男人主义

mark

2017-05-26 15:51

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

413408219@qq.com

mark

2017-09-08 23:40

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

8925683@qq.com

mark

2018-04-09 01:24

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

1498473100@qq.com

mark

2018-09-04 09:01

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

1498473100@qq.com

mark

2018-09-11 10:53 分享

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

苛学加

mark

2018-10-23 01:27

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

MR不靠谱

mark

2018-10-26 17:55

HBuilder后台保活开发(后台自动运行,定期记录定位数据)

小漏斗

mark

2019-03-02 00:46

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Souleigh ✨ Souleigh ✨
2年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Easter79 Easter79
2年前
SpringBoot自定义序列化的使用方式
场景及需求:项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串。例如:\    {        "id":1,        "name":null    },    {        "id":2,        "name":"x
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
2年前
SpringBoot自定义序列化的使用方式
场景及需求:项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串。例如:\    {        "id":1,        "name":null    },    {        "id":2,        "name":"x
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这