更新记录

2.0.3(2026-08-11)

  • 整包接入 keeplive-framework(Fw)
  • KeepLive API 对齐市场保活插件用法
  • 本地 Java11 兼容 AAR,规避 Jetifier Java21 失败
  • compliant / fw / experimental 三档 profile

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.27)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 7.0 × × ×

x-keepalive

uni-app x Android 后台守护插件。自 2.0.0 起整包接入 KeepLiveService / Fw,并提供接近 DCloud #20316 android-keepliveKeepLive API。

保活不是“不死”。系统内存回收、Doze、厂商策略和用户强制停止都拥有最终决定权。整包 Fw 会合并大量权限、组件与 Native so,上架前请自行裁剪与说明。

平台

  • Android 7.0+(API 24+,与 Fw 一致)
  • iOS / Web / Harmony:不支持(stub 返回 9050003
  • 依赖或原生代码变更后必须重新制作自定义调试基座

依赖

Fw 使用本地 AAR(勿删):

uni_modules/x-keepalive/utssdk/app-android/libs/keeplive-framework-2.0.1.aar

官方 Maven 包为 Java 21,会触发 HBuilderX Jetifier Unsupported class file major version 65;本地包已降为 Java 11 兼容字节码。详见 THIRD_PARTY.md

KeepLive(推荐,对齐 #20316 用法)

// #ifdef APP-ANDROID
import { KeepLive } from '@/uni_modules/x-keepalive'

const keep = new KeepLive()
keep.setTitle('保活中')
keep.setContent('后台任务运行中')
keep.setChannelId('x_keepalive_fw')
keep.setChannelName('后台任务')
keep.setBackgroundMusicEnabled(true)
keep.register()

console.log(keep.isRunning())
console.log(keep.getLiveStr())

keep.goKeepLiveSetting()
keep.startHighBattery()
keep.unregister()
// #endif

可用 Compat 回调:

  • onOpenNotificationSettingCompat
  • onAddBackgroundCallbackCompat
  • onAddScrrenListenerCallbackCompat(兼容官方拼写)
  • onAddNotificationClickListenerCompat

函数式诊断 API

import {
  start,
  stop,
  KeepAliveStartOptions,
  KeepAliveStatus
} from '@/uni_modules/x-keepalive'

start({
  profile: 'fw',
  notificationTitle: '设备监控',
  notificationContent: '监控服务正在运行',
  fw: {
    enableNativeDaemon: true,
    enableForceStopResistance: false
  },
  success: (status : KeepAliveStatus) => {
    console.log(status.state, status.engine)
  }
} as KeepAliveStartOptions)

模式

profile 行为
fw(默认) 跟随 Fw Builder 默认策略(含双进程/Native/静默音频/MediaRoute 等)
compliant 安全子集:关闭 Native/双进程/静音音频/VPN/防强停/联系人短信观察者
experimental 可通过顶层字段与 fw 对象显式打开高风险项

API 一览

函数式:start / stop / restart / getStatus / checkHealth / getCapabilities / openBatterySettings / openAutoStartSettings / requestNotificationPermission / onStatusChange / offStatusChange / isSupported / getPluginVersion

KeepLiveregister / unregister / restart / isRunning / getLiveTime / getLiveStr / 通知与渠道设置 / WakeLock / WifiLock / 厂商与电池设置 / Compat 监听

全量 Fw 开关见 KeepAliveFwOptionsinterface.uts)。

Demo

pages/keepalive/keepalive — KeepLive + 函数式 API + 策略诊断。

风险与边界

  1. AAR 合并权限含蓝牙、NFC、账户同步、精确闹钟、存储、联系人、短信、悬浮窗等;按商店政策裁剪。
  2. VPN / DeviceAdmin / 防强停默认关闭,需显式打开。
  3. 用户「强制停止」后不应宣称自动复活。
  4. Google Play 对 FGS type / 特殊权限审核严格;国内商店策略因厂商而异。
  5. 研究文档:RESEARCH.md

错误码

含义
9050001 启动/状态失败
9050002 停止失败
9050003 平台不支持
9050005 权限/设置页失败

隐私、权限声明

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

由 keeplive-framework 合并大量权限(前台服务、通知、开机、WakeLock、蓝牙、NFC、账户同步、精确闹钟、存储等)。VPN/设备管理员/防强停等默认关闭,需显式开启。

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

插件不采集或上传数据。运行时依赖第三方 Fw AAR,其组件可能读写本机配置与观察系统事件。

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

暂无用户评论。