更新记录

0.1.0(2026-11-05) 下载此版本

0.1.0

  • 能力探测 / 组合保活策略 / 心跳自检自愈 / 自检快照 / 厂商引导。

平台兼容性

pk-keepalive — 后台保活套件

纯 JS 合规保活:静默音频通道 + 息屏保持 CPU + 常驻通知 + 心跳自检自愈 + 厂商设置一键引导。 零原生插件、免自定义基座、不绑定包名、无新增危险权限。

为什么不是"永杀不死"

保活类竞品差评的根源是过度承诺:「一会儿能保活几小时,一会儿几分钟就没了」「折叠屏无效」却没人告诉你为什么。 pk-keepalive 的差异化定位:把保活从玄学变成数据——

  1. 系统允许的合规保活手段全部正确打开(组合策略,单通道失效不影响整体)
  2. 心跳自检:周期探测各通道健康度,失效先自愈(重建通知/重持锁/重启音频),自愈失败记录健康度快照
  3. 厂商引导:检测品牌(小米/华为/OPPO/vivo/三星…),一键跳转自启动/电池优化设置页,并输出完成度清单

5 分钟接入

// 1. App.vue onLaunch
import pkKeepalive from '@/uni_modules/pk-keepalive/js_sdk/index.js';
pkKeepalive.init();

// 2. 需要保活的时机(如页面 onLoad / 业务需要后台运行前)
pkKeepalive.start({
  notificationTitle: '正在后台运行',
  notificationText: '为保证功能正常,请勿关闭本通知',
  heartbeatIntervalMs: 30000   // 自检间隔,最小 5000
});

// 3. 任意时刻查看保活健康度
const st = pkKeepalive.getStatus();
// st.health: alive / degraded / dead / planned

// 4. 厂商设置引导(跳转自启动/电池优化页)
const checklist = pkKeepalive.getVendorChecklist(); // 当前品牌的设置步骤清单
pkKeepalive.openVendorPage('appdetail');       // 自启动/应用详情页
pkKeepalive.openVendorPage('ignore_battery');  // 电池优化白名单

API

方法 说明
init(opts?) 初始化配置
start(opts?) 启动保活。opts: audio/wakelock/notification(布尔,默认 true)、heartbeatIntervalMs、notificationTitle/Text
stop() 停止保活,释放 wakeLock
getStatus() 健康度快照:{health, channels[], warnings[], heartbeat}
getVendorChecklist() 当前品牌的厂商设置步骤清单
openVendorPage(action) 跳转厂商设置页(appdetail / ignore_battery),仅 Android
getCapabilities() 真实能力探测(不支持的端如实返回 supported:false,绝不假 true)

错误码

码 含义
E-KA-10 能力不可用(当前端不支持)
E-KA-11 通道开启失败
E-KA-20 保活通道失效且自愈失败
E-KA-21 保活通道自愈成功(metric)
E-KA-30 保活自检快照(metric)
E-USER-00 用户主动反馈

注意事项

  • 常驻通知是保活的"身份证":划掉通知可能导致后台优先级下降,SDK 会自动重建
  • 静默音频默认合规(无声段循环),设置 audioSilence:false 播放可听见声音有商店拒审风险
  • iOS 后台能力受系统硬限制:仅音频类/定位类 App 可长期后台,SDK 会如实降级
  • 厂商 ROM 差异见 docs/compatibility.md(如实标注,不夸大)
  • 完整可运行示例见 example/(导入 HBuilderX 即可运行)

隐私、权限声明

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

无

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

插件不采集任何数据

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

无

许可协议

MIT协议

暂无用户评论。