HBuilder后台保活开发(后台自动运行,定期记录定位数据)
http://ask.dcloud.net.cn/question/28090
后台自动运行,定期记录定位数据
各位新年好
小弟以前用hbuilder开发过几个项目,现在有一新需求项目,在考虑是否使用它来实现:
需要APP在后台能定期离线监控用户定位数据,使用的是百度地图,我已经知道可以离线获取定位信息,但不知道如何能后台运行(APP不关闭,切换到后台,或者熄屏后它能继续运行),在后台定期(如20分钟)获取用户当前的位置,并记录在本地(如localstorage),然后上线时向服务器提交这些数据。
想请教各HBUILDER大神,或者DCLOUD的技术员们,这个是否可行,并且有没最简便的方法(如不需要触碰原生插件开发是最好),需支持android与IOS,谢谢。
13 个回复
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'});
}
我来说下我的痛苦经历(IOS),Android 因为非原生,也做不到所谓的双进程保活,这里略过:
1.HBuilder 打包的IOS应用并不能做到后台长久保活,即使你设置了后台定位,原因是DCloud的云端打包机没有支持
- 设置,隐私,定位,更改为始终,还是不能做到长久保活
所以后来采取这样的方法:
1.manifest.xml 里配置后台运行模式,配置后台定位、后台播放音乐
- js 代码做定时任务,播放无声音乐,每2分钟播放 1秒(保证到了后台3分钟的时效时,重新激活下应用,再次延长3分钟)
- 安装到IOS上后,手动去设置里,隐私,定位,更改为始终
以上就这些,如果是IOS离线打包的,可以做到后台长久定位,至于Android 的,就我手头的华为、小米、魅族机器来测试看,微信、QQ也并不是真正的双进程保活,之所以杀不掉,是被厂商加入了白名单(华为),小米机器一杀一个准
对了,主动后台运行,iOS貌似不可以,年代太久记不清了。Android如下:
复制代码/**
* 后台运行
*/
function backRunning(){
var main = plus.android.runtimeMainActivity();
main.moveTaskToBack(false);
}
HBuilder后台保活开发(后台自动运行,定期记录定位数据)的更多相关文章
- 后台自动运行,定期记录定位数据(Hbuilder监听 app由前台切换到后台、切换运行环境的 监听方法)
http://ask.dcloud.net.cn/question/28090 https://blog.csdn.net/qq_37508970/article/details/86649703 各 ...
- 《推送开发全面盘点当前Android后台保活方案的真实运行效果》
登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页 即时通讯网›专项技术区›推送开发全面盘点当前Android后台保活方案的真实运行效果(截止2 ... 帖子 打赏 分 ...
- 全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)
本文原作者“minminaya”,作者网站:minminaya.cn,为了提升文章品质,即时通讯网对内容作了幅修订和改动,感谢原作者. 1.引言 对于IM应用和消息推送服务的开发者来说,在Androi ...
- PHP程序后台自动运行
如何让php程序自动执行,这个就需要用到一个函数了: int ignore_user_abort ( [bool setting] ) 定义和用法ignore_user_abort() 函数设置与客户 ...
- Android后台保活实践总结:即时通讯应用无法根治的“顽疾”
前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾.因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布于都对标准Android发行版作为或多或少的 ...
- Android记一次后台保活设计心得2018
首先我并不推荐也不喜欢手机应用通过各种手段后台保活,但是当产品经理确定一定以及肯定地提出了这个需求,活着应用有着必须常驻后台的理由,也就只有硬着头皮去与各个手机的后台管理机制做斗争了. 背景:因为开发 ...
- 前端到后台ThinkPHP开发整站--php开发案例
前端到后台ThinkPHP开发整站--php开发案例 总结 还是需要做几个案例,一天一个为佳,那样才能做得快. 从需求分析着手,任务体系要构建好,这样才能非常高效. 转自: 前端到后台ThinkPHP ...
- IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活
对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...
- vue开发后台管理系统有感
使用vue开发后台近一个月,今天终于完成得差不多了,期间也遇到很多的问题,所以利用现在的闲暇时间做个总结 使用element-ui基础,这次使用了vue-element-admin(github地址) ...
随机推荐
- Ajax+Struts2用户注册功能实现
详细请参考源码(Github):https://github.com/QQ3330447288/ajaxRegister 1.目录结构 2.截图 3.核心代码: register.jsp <sc ...
- LeetCode--021--合并两个有序链表(java)
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- CodeForces - 363D --二分和贪心
题目:CodeForces - 363D 题意:给定n个学生,其中每个学生都有各自的私己钱,并且自己的私己钱只能用在自己买自行车,不能给别人. 给定m个自行车,每个自行车都有一个价格. 给定公有财产a ...
- vue的组件之间传值方法
父组件 <template> <div> 这是父组件 <children v-bind:parentToChild="toChild" v-on:sh ...
- 关于var time = +new Date;
文章地址:https://www.cnblogs.com/Raoh/p/4212075.html
- ClassNotFoundException和NoClassDefFoundError的区别
ClassNotFoundException ClassNotFoundException的产生原因:就是找不到指定的class. ClassNotFoundException发生在加载阶段. 常见的 ...
- CSS清除浮动的方法及优缺点
浮动是CSS布局里面用的比较多的属性.浮动的框向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 因为浮动会使当前元素产生向上浮的效果,所以浮动的元素会脱离正常的文档流,它包围的内容在 ...
- Lua 语言基本语法
第一个 Lua 程序 .交互式编程 Lua 提供了交互式编程模式.我们可以在命令行中输入程序并立即查看效果. Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用 .脚本式编程 我们可 ...
- 【PAT】我要通过!
“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...
- vue中提示toFixed不是函数
vue中toFixed获取小数点后两位 错误提示:.toFixed is not a function解决办法:Number(_this.group_cash).toFixed(2) 转自:http ...