uniapp后台保活

//后台运行监听器  
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'});  
}  
/**  
 * 后台运行  
 */  
function backRunning(){  
    var main = plus.android.runtimeMainActivity();  
    main.moveTaskToBack(false);  
}  

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现uniapp后台保活让最后的页面持续获得定位信息,可以通过以下步骤实现: 1. 在manifest.json文件中添加以下代码,声明需要使用定位权限: ``` "android": { "permission": [ "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" ] }, "app-plus": { "modules": { "uni-location": { "permission": [ "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" ] } } } ``` 2. 在App.vue中实现onResume和onPause生命周期函数,并在onResume生命周期函数中启动一个后台服务: ``` onResume() { uni.startBackgroundService({ name: 'my-service', success: function() { console.log('start background service success'); }, fail: function() { console.log('start background service fail'); } }); }, onPause() { uni.stopBackgroundService({ success: function() { console.log('stop background service success'); }, fail: function() { console.log('stop background service fail'); } }); } ``` 3. 在后台服务中持续获取定位信息,并将信息通过uni.postMessage方法传递给前台页面: ``` setInterval(function() { uni.getLocation({ success: function(res) { console.log('getLocation success', res); uni.postMessage({ type: 'location', data: res }); }, fail: function(res) { console.log('getLocation fail', res); } }); }, 10000); ``` 4. 在前台页面中监听postMessage事件,获取后台服务传递的定位信息: ``` onLoad() { uni.onMessage(function(message) { console.log('receive message', message); if (message.type === 'location') { console.log('receive location', message.data); } }); } ``` 通过以上步骤,就可以实现uniapp后台保活让最后的页面持续获得定位信息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值