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

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

分类:HTML5+
 

各位新年好

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

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

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

2017-02-04 17:38 分享

13 个回复

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

啸天

我来说下我的痛苦经历(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

Sychel

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

复制代码/**
* 后台运行
*/
function backRunning(){
var main = plus.android.runtimeMainActivity();
main.moveTaskToBack(false);
}
 
2017-02-04 18:16
  • pango (作者)

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

    2017-02-04 19:06

stock2

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

 
2017-02-10 09:18
 

 
2017-05-05 09:52
 

 
2017-05-26 15:51
 

 
2017-09-08 23:40
 

 
2018-04-09 01:24
 

 
2018-09-04 09:01
 

 
2018-09-11 10:53 分享
 

苛学加

mark

 
2018-10-23 01:27
 

 
2018-10-26 17:55
 

小漏斗

mark

 
2019-03-02 00:46

HBuilder后台保活开发(后台自动运行,定期记录定位数据)的更多相关文章

  1. 后台自动运行,定期记录定位数据(Hbuilder监听 app由前台切换到后台、切换运行环境的 监听方法)

    http://ask.dcloud.net.cn/question/28090 https://blog.csdn.net/qq_37508970/article/details/86649703 各 ...

  2. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›推送开发全面盘点当前Android后台保活方案的真实运行效果(截止2 ...   帖子 打赏 分 ...

  3. 全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

    本文原作者“minminaya”,作者网站:minminaya.cn,为了提升文章品质,即时通讯网对内容作了幅修订和改动,感谢原作者. 1.引言 对于IM应用和消息推送服务的开发者来说,在Androi ...

  4. PHP程序后台自动运行

    如何让php程序自动执行,这个就需要用到一个函数了: int ignore_user_abort ( [bool setting] ) 定义和用法ignore_user_abort() 函数设置与客户 ...

  5. Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

    前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾.因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布于都对标准Android发行版作为或多或少的 ...

  6. Android记一次后台保活设计心得2018

    首先我并不推荐也不喜欢手机应用通过各种手段后台保活,但是当产品经理确定一定以及肯定地提出了这个需求,活着应用有着必须常驻后台的理由,也就只有硬着头皮去与各个手机的后台管理机制做斗争了. 背景:因为开发 ...

  7. 前端到后台ThinkPHP开发整站--php开发案例

    前端到后台ThinkPHP开发整站--php开发案例 总结 还是需要做几个案例,一天一个为佳,那样才能做得快. 从需求分析着手,任务体系要构建好,这样才能非常高效. 转自: 前端到后台ThinkPHP ...

  8. IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  9. vue开发后台管理系统有感

    使用vue开发后台近一个月,今天终于完成得差不多了,期间也遇到很多的问题,所以利用现在的闲暇时间做个总结 使用element-ui基础,这次使用了vue-element-admin(github地址) ...

随机推荐

  1. 机器学习 之KNN近邻法

    目录 1.KNN近邻法 1.KNN近邻法 KNN模型由三个基本要素决定: 距离度量:其中欧式距离一般误差最小,\(x_{i} 和 x_{j}\)为两个样本点:\[L_{2}(x_{i}, x_{j}) ...

  2. System.Web.WebPages.Html.HtmlHelper”不包含XXXX

    1.关闭Visual Studio中 2.删除bin和OBJ文件夹 3.重新打开您的解决方案

  3. less和sass的定义和区别

    less是单独的一种文件,可以理解为css的升级版: sass是一个相对新的编程语言,为web前端开发而生,可以用它来定义一套新的语法规则和函数: 区别: ①   表现方式不同:less基于javas ...

  4. CCF关于公开NOIP复赛选手程序的通告

    为使参加NOIP复赛的选手能了解和保存其竞赛时编制的程序,并相互监督,CCF责成各省特派员在复赛后公开选手程序. 公布方式:以提高组和普及组分别为单位,通过网站或邮件等方式公开.以每个选手可以看到本省 ...

  5. 移动rem自适应

    /** * rem计算方式:设计图尺寸px / 100 = 实际rem 例: 100px = 1rem */!function (window) { /* 设计图文档宽度 */ var docWidt ...

  6. jq demo 点击评分组件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. python 图像转矩阵,矩阵转图像

    1.图像转换为矩阵 matrix = numpy.asarray(image) Help on function asarray in module numpy.core.numeric: asarr ...

  8. 发布-订阅消息系统Kafka简介

    转载请注明出处:http://www.cnblogs.com/BYRans/ Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式 ...

  9. Collection集合的三种初始化方法

    (一) java容器可以分为两大类 1)Collection其中包括List,Set,Queue 2)Map (二) Arrays.asList()方法:接受一个数组或一个逗号分隔的元素列表,并将其转 ...

  10. 转 C#实现PID控制的模拟测试和曲线绘图

    C#实现PID控制的模拟测试和曲线绘图   本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...