更新记录

1.5(2020-08-19)

1.处理调用closeService后,服务还会自动启动问题

1.4(2020-08-07)

  1. 移除 自启动配制
  2. 移除 定时任务配制 (定时不准确,由系统调度)
  3. 添加省电模式与流氓模式
  4. 因为全局任务事件依赖appUI界面,所以服务如果没有被杀确发现appUI不存在了,会自动唤起新的appUI以执行任务。

1.3(2020-07-08)

  1. 添加wifi变化,电量变化,解锁,微信更新消息,华为推送,日期变化 ,时间变化等系统通知监听 以决定是否自动启动服务
  2. 添加公开自动启动服务配制,及点亮屏幕配制项。
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择


使用说明

可以用于提升app运行权限,增加保活概率,可使app长期后台运行不会被杀死(用户主动清理就不能保了。)

  1. 使用双守护服务(部分有手机有效)
  2. 1像素锁屏显示(在锁屏界面会有1像素的的UI,不可见)-》用于提升app重要性,不要轻意被杀
  3. JobScheduler添加系统任务(系统调度保活,一定层度上有效)
  4. 每30秒会主动点亮屏幕,以防止系统进入深度休眠而杀死app
  5. 为了能不受限制,本插件添加了白名单检测,及打开各厂家的安全管理软件的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();

隐私、权限声明

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

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

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

许可协议

作者未提供license.md

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