更新记录

0.0.3(2025-09-24)

  • chore: 更新文档

0.0.2(2025-09-24)

  • feat: 支持ios

0.0.1(2025-09-24)

  • 首次发布
  • 支持 Android应用保活功能
  • 提供多种保活策略:前台服务、音频播放、一像素活动等
查看更多

平台兼容性

uni-app(4.71)

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

uni-app x(4.74)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 - - -

lime-keep-alive 应用保活

一个跨平台的应用保活解决方案,支持 Android 帮助您的应用在后台保持活跃状态,确保关键任务和服务不被系统杀死。

功能概述

本模块提供以下保活功能:

  • Android 平台

    • 前台服务保活
    • 音乐播放保活
    • 一像素保活(Android P 以下)
    • WorkManager 保活
    • 电池优化白名单
    • 崩溃自动重启
  • iOS 平台

    • 后台任务延期
    • 音频播放保活
    • 定时器保活
    • 网络请求保活
    • 本地通知保活

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在 uni-app 插件市场中搜索并导入 lime-keep-alive
  2. 请先在页面上引入插件后再自定义基座

使用方法

import { useKeepAlive, type UseKeepAliveOptions } from '@/uni_modules/lime-keep-alive'

// 初始化保活服务
const keepAlive = useKeepAlive({
  success: (res) => {
    console.log('保活服务启动成功:', res)
  },
  fail: (err) => {
    console.log('保活服务启动失败:', err)
  }
} as UseKeepAliveOptions)

使用示例

基本使用

<template>
  <view class="container">
    <button @click="openSettings">打开保活设置</button>
    <button @click="stopService">停止保活服务</button>
    <button @click="restartService">重启保活服务</button>
  </view>
</template>

    // 保活服务实例
    let keepAlive = useKeepAlive({
    success: (res) => {
      console.log('保活服务启动成功:', res);
    }
    } as UseKeepAliveOptions);

    // 设置调试模式
    keepAlive.isDebug(true);

    // 设置通知信息
    keepAlive.setTitle('我的应用');
    keepAlive.setContent('正在后台运行');

    // 添加前后台切换回调
    keepAlive.addBackgroundCallback((isBackground) => {
        console.log('应用切换到' + (isBackground ? '后台' : '前台'));
    });

    // 必须注册
    keep.register()

    // 打开保活设置
    const openSettings = () => {
      keepAlive.openKeepLive();
    };

    // 停止保活服务
    const stopService = () => {
      keepAlive.unregister();
    };

    // 重启保活服务
    const restartService = () => {
      keepAlive.restart();
    };

高级配置


  // 配置通知
  keepAlive.setTitle('我的应用');
  keepAlive.setContent('正在后台运行中...');
  keepAlive.setChannelId('my_keep_alive_channel');
  keepAlive.setChannelName('应用保活通知');

  // Android 平台特有配置
  if (uni.getSystemInfoSync().platform === 'android') {
    // 设置小图标(Android) 小图标需要放在插件目录uni_modules\lime-keep-alive\utssdk\app-android\res\drawable里。
    keepAlive.setSmallIcon('notification_icon');

    // 请求忽略电池优化
    if (!keepAlive.isIgnoringBatteryOptimizations()) {
      keepAlive.requestIgnoreBatteryOptimizations();
    }

    // 配置一像素保活
    keepAlive.setOnePixEnabled(true);

    // 配置 WorkManager
    keepAlive.setWorkerEnabled(true);

    // 配置崩溃自动重启
    keepAlive.setCrashRestartUIEnabled(true);
  }

  // 配置音频保活
  keepAlive.setMusicEnabled(true);
  keepAlive.setMusicInterval(60000); // 60秒间隔
  keepAlive.setBackgroundMusicEnabled(true);

API 参考

核心方法

方法名 说明 参数 平台支持
isRunning() 检查保活服务是否在运行 Android/iOS
register() 注册保活服务 Android/iOS
unregister() 注销保活服务 Android/iOS
restart() 重启保活服务 Android/iOS
updateNotification() 更新通知内容 Android/iOS
addBackgroundCallback(cb) 添加前后台切换回调 cb: 回调函数,参数为布尔值,表示是否在后台 Android/iOS
addCallback(cb, work?) 添加定期执行的回调(未实现) cb: 回调函数
work: 可选的工作计数回调
Android
isDebug(isDebug) 设置调试模式 isDebug: 是否启用调试模式 Android/iOS

通知配置

方法名 说明 参数 平台支持
setTitle(title) 设置通知标题 title: 标题文本 Android/iOS
setContent(content) 设置通知内容 content: 内容文本 Android/iOS
setChannelId(channelId) 设置通知渠道ID channelId: 渠道ID Android
setChannelName(channelName) 设置通知渠道名称 channelName: 渠道名称 Android
setSmallIcon(icon) 设置通知小图标(仅支持插件目录的资源) icon: 图标资源名称 Android
setLargeIcon(icon) 设置通知大图标(支持本地资源) icon: 图标资源名称 Android
hideNotification(hide) 隐藏通知 hide: 是否隐藏 Android/iOS
hideNotificationAfterO(hide) 隐藏 Android 8.0+ 通知 hide: 是否隐藏 Android
setNotification() 使用自定义通知 Android
setNotificationChannel() 使用自定义通知渠道 Android
setNotificationClick() 设置通知点击事件 Android
setPendingIntent() 设置通知点击意图 Android
openNotificationSettings() 打开通知设置页面 Android/iOS

音频保活配置

方法名 说明 参数 平台支持
setMusicEnabled(enabled) 启用/禁用音频保活 enabled: 是否启用 Android/iOS
setBackgroundMusicEnabled(enabled) 启用/禁用后台音乐 enabled: 是否启用 Android/iOS
setMusicInterval(time) 设置音乐播放间隔 time: 间隔时间(毫秒) Android/iOS
setMusic() 使用自定义音乐 Android

Android 特有配置

方法名 说明 参数 平台支持
setOnePixEnabled(enabled) 启用/禁用一像素保活 enabled: 是否启用 Android
setWorkerEnabled(enabled) 启用/禁用 WorkManager enabled: 是否启用 Android
setCrashRestartUIEnabled(enabled) 启用/禁用崩溃重启 enabled: 是否启用 Android
setServiceId(serviceId) 设置服务ID serviceId: 服务ID Android
setWorkOnMainThread(enabled) 设置回调在主线程执行 enabled: 是否在主线程 Android
usePreviousConfig(usePreviousConfig) 使用上次配置 usePreviousConfig: 是否使用 Android
isIgnoringBatteryOptimizations() 检查是否忽略电池优化 Android
requestIgnoreBatteryOptimizations() 请求忽略电池优化 Android
openKeepAliveSettings() 打开保活设置页面 Android/iOS

WakeLock 相关 (Android)

方法名 说明 参数 平台支持
setWakeLock(state, tag) 设置 WakeLock state: 状态
tag: 标签
Android
wakeLockAcquire() 获取 WakeLock Android
wakeLockAcquire(time) 获取指定时间的 WakeLock time: 时间(毫秒) Android
wakeLockRelease() 释放 WakeLock Android

注意事项

  1. Android 平台

    • 不同厂商的系统对后台应用有不同的限制策略,保活效果可能因设备而异
    • 建议引导用户手动设置应用自启动、后台运行权限
    • 部分功能在高版本 Android 系统上可能受限
  2. iOS 平台

    • iOS 系统对后台应用有严格限制,保活时间有限
    • 音频播放是最有效的保活方式,但需要合理使用
    • 建议结合多种保活方式以获得最佳效果
  3. 通用注意事项

    • 合理使用保活功能,避免过度消耗用户设备电量
    • 在应用真正需要后台运行时才启用保活服务
    • 提供明确的用户界面,让用户知道应用在后台运行及其原因

常见问题

  1. 保活服务无法启动

    • 检查是否已正确引入插件
    • 确认是否使用了自定义基座
    • 查看控制台是否有相关错误信息
  2. Android 保活效果不佳

    • 引导用户设置电池优化白名单
    • 引导用户设置自启动权限
    • 尝试启用多种保活方式组合使用
  3. iOS 保活时间有限

    • iOS 系统限制严格,无法实现完全的后台保活
    • 使用推送通知唤醒应用
    • 合理设置音频间隔,延长保活时间

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

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

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

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

暂无用户评论。