HBuilder后台保活开发(后台自动运行,定期记录定位数据)
Posted zouhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBuilder后台保活开发(后台自动运行,定期记录定位数据)相关的知识,希望对你有一定的参考价值。
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);
}
[email protected]
大神,求demo
2018-03-07 18:25