更新记录

1.1.0(2021-12-20)

修复oppo、vivo、iqoo不能后台运行的问题

1.0.0(2021-12-15)

安卓保活插件,息屏稳定运行12小时以上、切换后台之后,app不被系统kill掉,测试三星s9+、华为、三星、小米稳定运行超过12小时!


平台兼容性

Android Android CPU类型 iOS
适用版本区间:8.0 - 11.0 armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


购买者的技术支持群

未购买的用户或已经购买用户,想咨询的可以直接加QQ:728967045,后期会创建群聊,及时解决大家遇到的问题!

1 解决购买者在实际应用过程中,关于插件的问题,更好的为购买者提供插件技术支持。

解决的问题是什么?

答:安卓端,app切换后台、锁屏之后,系统经常会杀死app,导致app定时任务、持续定位等无法正常运行。

测试效果如何?

答:我们测试插件能够在后台稳定运行,持续运行时间超过24小时,性能非常稳定!
安卓9中,我们用三星s9+,测试,满足需求。
目前测试过的且可以保活的设备有:华为、三星、小米,安卓版本集中在10,9.后续会继续更新我们测试过的设备。
华为荣耀系列需设置:设置->应用->应用启动管理,找到自己的应用设置为“手动管理”->"允许后台活动",其他保活不起作用的设备,可参考设置。

关于定时器

我们的插件在绝大部分情况下是可以实现保活需求的,但是不同用户在测试的过程中发现他们的任务被杀死了,很大部分原因是使用了定时器(setInterval),我们在测试过程中发现传统的定时器(setInterval)会被系统杀死,所以我们最新的版本中在原生插件中实现了一个定时器的替代方案,可以实现定时器功能,但是没有使用定时器。使用方法为在启动的时候,传递参数delaysec(毫秒数,即定时功能多久触发一次),传递参数为-1的时候,定时器不会启动,传2000,表明定时器每2秒执行一次,具体参考《使用方法》

定时器的应用场景

1 定时获取位置
2 定时刷新日志
3 后台语音播报
4 实时聊天
等等

示例工程的使用

1 示例工程上传时需要删除掉APPID,所以如果要运行示例工程的话,需要自己设置下manifest.json->源码视图->appid替换为你们自己的。
2 点击右上角的“试用”选择appid对应的工程
3 在manifest.json->app原生插件配置->云端插件-选择你刚刚点击试用的插件《安卓保活,息屏稳定运行,白名单,定时器》
4 调试:打包自定义基座:运行->运行到手机或模拟器->制作自定义调试基座,
5 自定义调试基座打包好后,运行的时候选择基于自定义基座即可运行调试

使用方法:

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时,该函数不会被调用
    // 在这里写你的业务逻辑(建议这里调用接口测试,接口打印数据,测试稳定性)
    ……
    // 业务逻辑结束
});

常见问题

1 前台服务没有起来(在通知栏看不到)

检查下是不是没有打开通知 

2 APP闪退

试用要选择自定义基座, 监听器不要多次创建,消耗手机资源,造成闪退

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问