Uniapp-APP后台保活插件(安卓后台保活)

目录

1.插件导入项目

2.项目中使用保活插件

3.打包自定义调试基座

4.代码配置

5.项目运行

6.测试效果


相关插件:安卓保活

1.插件导入项目

        注:可以先试用哦,大佬直接购买也可以哦!我是先试用的哦。

         试用-->勾选项目(仔细核对)-->勾选隐私-->确定-->关闭成功提示弹窗

2.项目中使用保活插件

注:manifest.json --> APP原生插件配置 --> 云端插件【使用云端插件】--> 勾选上边添加到项目的插件 --> 显示安卓保活插件即可

3.打包自定义调试基座

        注:根据提示下一步,等待打包完成,控制台会有完成提示的

4.代码配置

1.启动设置:

// 放在script标签之下,export default之前
const lqmkeepalive = uni.requireNativePlugin('lqm-keepalive');
var globalEvent = uni.requireNativePlugin('globalEvent');

// 放在你需要保活的业务逻辑之前
// 比如:点击“开始刷新日志”按钮,将下面lqmkeepalive.start的相关代码放在按钮的点击事件代码中。
    lqmkeepalive.start({ 
            title: "我正在每5秒刷新一次日志",              //小标题
            big_title: '我正在刷新日志',                  //大标题
            content: "不要关闭我,否则我就没法刷新了",     //详细内容
            delaysec : 5000,                            // 毫秒,如果不想启用定时器,传参数 -1
    }, result => { 
        // 没有返回值,启动成功后,会在通知栏中出现服务。
    });

2.关闭设置:

var globalEvent = uni.requireNativePlugin('globalEvent');
const lqmkeepalive = uni.requireNativePlugin('lqm-keepalive'); 
// 清楚加入的监听事件
globalEvent.removeEventListener('position');
lqmkeepalive.stop({ //无参数,停止之后服务会停止。 
    }, result => { 
    // 没有返回值,停止之后服务会停止。 
});

3.定时功能回调:

// 注意这个函数不要重复调用,只调用一次,多次启动就会创建多个监听器,造成app闪退
globalEvent.addEventListener('position', function(e) {
    // 定时器回调,每隔delaysec毫秒之后,该函数会被调用一次,当delaysec为-1时,该函数不会被调用
    // 在这里写你的业务逻辑(建议这里调用接口测试,接口打印数据,测试稳定性)
    ……
    // 业务逻辑结束
});

4.完整代码:

注:我这里用的是switch控制组件的开启和关闭,结合向后台请求的处理的,仅供参考,还是要根据自己项目来修改。

<template>
	<view class="container">
		<view class="item" v-if="deviceType">
			<text>是否允许后台刷新</text>
			<text>
				<switch :checked="switchflag" color="#20a162" style="transform:scale(0.8)" @change="switchChange" />
			</text>
		</view>
	</view>
</template>

<script>
	let device = uni.getSystemInfoSync().platform
	
	export default {
		data() {
			return {
				switchflag: false,
				deviceType:device != 'ios' 
			}
		},
		onLoad() {},
		onShow() {
			this.get()
		},
		methods: {
			switchChange(e) {
				console.log('switch1 发生 change 事件,携带值为', e.detail.value)

				this.set(e.detail.value === true ? 1 : 0)
			},
			get() {
				console.log("deviceType----",this.deviceType)
				this.$request.urlRequest(
					`/user/status/get`, {},
					'get',
					(res) => {
						if (res.code !== 200) return
						console.log("调用成功-----", res)
						this.switchflag = res.result.backliveStatus
					}
				)
			},
			set(n) {
				console.log("n", n)
				this.$request.urlRequest(
					`/user/status/edit/backlive?status=${n}`, {},
					'POST',
					(res) => {
						if (res.code !== 200) return
						console.log("调用成功-----", res)
						let globalEvent = uni.requireNativePlugin('globalEvent');
						let lqmkeepalive = uni.requireNativePlugin('lqm-keepalive'); 
						
						if(n == 0){
							// 清楚加入的监听事件
							globalEvent.removeEventListener('position');
							lqmkeepalive.stop({ //无参数,停止之后服务会停止。 
							    }, result => { 
							    // 没有返回值,停止之后服务会停止。 
								console.log("停止成功-----")
							});
						}else{
							// 放在你需要保活的业务逻辑之前
							// 比如:点击“开始刷新日志”按钮,将下面lqmkeepalive.start的相关代码放在按钮的点击事件代码中。
							lqmkeepalive.start({
								title: "我正在每3秒刷新一次日志", //小标题
								big_title: '我正在刷新日志', //大标题
								content: "不要关闭我,否则我就没法刷新了", //详细内容
								delaysec: 3000, // 毫秒,如果不想启用定时器,传参数 -1
							}, result => {
								// 没有返回值,启动成功后,会在通知栏中出现服务。
								console.log("执行开启成功----------")
							});
						}
					}
				)
			}
		}
	}
</script>

<style lang="scss" scoped></style>

5.项目运行

注:这里是正常的运行流程,只是运行的时候勾选自定义基座(第三步打包的),不勾选这个的话,保活功能是没有办法使用的,切记!

6.测试效果

 注:根据自己项目功能进行测试,我这边运行没有问题,功能也正常。 

猜你喜欢

转载自blog.csdn.net/weixin_57844432/article/details/128947263