更新记录
1.5(2020-08-19) 下载此版本
1.处理调用closeService后,服务还会自动启动问题
1.4(2020-08-07) 下载此版本
- 移除 自启动配制
- 移除 定时任务配制 (定时不准确,由系统调度)
- 添加省电模式与流氓模式
- 因为全局任务事件依赖appUI界面,所以服务如果没有被杀确发现appUI不存在了,会自动唤起新的appUI以执行任务。
1.3(2020-07-08) 下载此版本
- 添加wifi变化,电量变化,解锁,微信更新消息,华为推送,日期变化 ,时间变化等系统通知监听 以决定是否自动启动服务
- 添加公开自动启动服务配制,及点亮屏幕配制项。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用说明
可以用于提升app运行权限,增加保活概率,可使app长期后台运行不会被杀死(用户主动清理就不能保了。)
- 使用双守护服务(部分有手机有效)
- 1像素锁屏显示(在锁屏界面会有1像素的的UI,不可见)-》用于提升app重要性,不要轻意被杀
- JobScheduler添加系统任务(系统调度保活,一定层度上有效)
- 每30秒会主动点亮屏幕,以防止系统进入深度休眠而杀死app
- 为了能不受限制,本插件添加了白名单检测,及打开各厂家的安全管理软件的api,各个厂家添加取消后台运行限制不一致,需要 手动设置。
google对后台运行限制越来越严格,有部分手段已经失效,而且现在也倡导绿色app,各位且行且珍惜
初始化
const hgService = uni.requireNativePlugin("HG-Background");
配制插件
hgService.config({
title:"服务名称",
content:"前台服务运行中",
mode: 0, //0省电模式 1流氓模式
});
注意插件服务使用 app的 icon.png,与push.png 作为通知栏图标
打开安全管理(支持小米,华为,锤子,opp,vivo,三星,乐视,魅族)
hgService.showSafeSetting();//支持小米,华为,锤子,opp,vivo,三星,乐视,魅族
检测是否限制后台运行
var rsult=hgService.checkIfLimited();
//console.log("isLimit=>"+rsult.isLimit );
// modal.toast({
// message: "是否受限:"+rsult.isLimit,
// duration: 1.5
// });
返回数据说明
{
"isLimit":true // false 是否受限
}
申请允许后台运行(仅针对android系统,对于各厂家的安全管理设置要单独进行,这里只能一定层度上增加app存活时间)
hgService.requestIgnoreLimit();
启动前台服务
hgService.startService();
全局事件回调 (可用在uniapp执行任务,注册需要可以快速返回,不能阻塞)
任务启动时间,会有一定延时 一般一分钟内。
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('doJob', function() {
counts+=1;
modal.toast({
message: "任务执行次数:"+counts,
duration: 1
});
});
停止服务
hgService.closeService();