更新记录

1.0.2(2025-08-20) 下载此版本

  • 【修复】符号引起的报错

1.0.1(2025-08-12) 下载此版本

  • 【新增】iOS端保活
  • 【优化】安卓无关配置
  • 【更新】使用文档

1.0.0(2025-08-09) 下载此版本

  • 【初始化】支持保活,息屏1像素等
  • 【公告】下个版本支持iOS
查看更多

平台兼容性

uni-app x(4.66)

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

Turbo UI 系列插件 - App保活(想咋活就咋活)

插件介绍

t-keepalive-api 是一个用于 uni-app 的应用保活插件,支持 Android 和 iOS 平台。该插件可以帮助应用在后台运行时保持活跃状态,并且支持在保活状态下执行自定义函数。

功能特点

  • 支持 Android 和 iOS 平台
  • 前台服务保活(Android)
  • 后台任务保活(iOS)
  • 支持在保活状态下执行自定义函数
  • 支持设置执行间隔
  • 提供电池优化和自启动权限申请
  • 适配多种主流手机厂商

项目配置

  • 根目录配置 manifest.json > iOS App配置 > 后台运行能力
    • 添加 audio

基础用法

<script setup>
    import * as TKeepAlive from "@/uni_modules/t-keepalive-api"
    let interv = ref(0)

    // 开启保活
  function handleStartKeepAlive() {
        TKeepAlive.start(() => {
            interv.value = setInterval(() => {
                console.log("Turbo Plugins 邀你活着")
            },2000)
        })
    }

    // 停止保活
  function handleStopKeepAlive() {
        TKeepAlive.stop(() => {
            clearInterval(interv.value)
            console.log("Turbo Plugins 停止了")
        })
    }
</script>

暴露的类型

export type TKeepAliasCallback = () => void;

export declare function start(callback: TKeepAliasCallback): void;
export declare function stop(callback: TKeepAliasCallback): void;

插件 Info.plist 配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- 后台模式配置 -->
    <key>UIBackgroundModes</key>
    <array>
        <string>audio</string>
        <string>fetch</string>
    </array>

    <!-- 网络传输安全 -->
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
</dict>
</plist>

插件AndroidManifest.xml配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    package="uts.sdk.modules.tKeepaliveApi">
    <!-- 基础权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <!-- 保活相关权限 -->
    <!-- 唤醒锁权限,防止设备进入深度睡眠 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <!-- 前台服务权限 -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />

    <!-- 忽略电池优化权限 -->
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

    <!-- 系统弹窗权限(部分厂商需要) -->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    <!-- 开机自启动权限 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!-- 通知权限 -->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

    <!-- 查询已安装应用权限(Android 11+) -->
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />

    <!-- 设备管理员权限(可选,增强保活效果) -->
    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />

    <!-- 写入系统设置权限(部分厂商跳转需要) -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <!-- 闹钟权限 -->
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

    <!-- 修改系统设置权限 -->
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" tools:ignore="ProtectedPermissions" />
    <!-- 厂商特殊权限查询 -->
    <queries>
        <!-- 小米 -->
        <package android:name="com.miui.securitycenter" />
        <!-- OPPO -->
        <package android:name="com.coloros.safecenter" />
        <package android:name="com.oppo.safe" />
        <!-- VIVO -->
        <package android:name="com.vivo.permissionmanager" />
        <!-- 华为 -->
        <package android:name="com.huawei.systemmanager" />
        <!-- 荣耀 -->
        <package android:name="com.hihonor.systemmanager" />
        <!-- 魅族 -->
        <package android:name="com.meizu.safe" />
        <!-- 一加 -->
        <package android:name="com.oneplus.security" />
        <!-- 三星 -->
        <package android:name="com.samsung.android.sm" />
        <!-- 联想 -->
        <package android:name="com.lenovo.safecenter" />
    </queries>
    <application>
        <!-- 主Activity -->
        <activity android:name="uts.sdk.modules.tKeepaliveApi.KeepAliveActivity" android:exported="true"></activity>

        <!-- 1像素保活Activity -->
        <activity android:name="uts.sdk.modules.tKeepaliveApi.OnePixelActivity" android:excludeFromRecents="true" android:exported="false"
            android:finishOnTaskLaunch="false" android:launchMode="singleInstance"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!-- 保活服务 -->
        <service android:name="uts.sdk.modules.tKeepaliveApi.KeepAliveService" />

        <!-- 定时唤醒接收器 -->
        <receiver android:name="uts.sdk.modules.tKeepaliveApi.AlarmReceiver" />

        <!-- 开机启动接收器 -->
        <receiver android:name="uts.sdk.modules.tKeepaliveApi.BootReceiver" android:enabled="true" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>
    </application>
</manifest>

注意事项

  1. iOS 系统对后台任务有严格限制,保活时间有限,建议结合推送通知等机制增强保活效果。
  2. 不同厂商的 Android 设备对后台应用有不同的限制策略,可能需要用户手动设置。
  3. 请合理使用保活功能,避免过度消耗用户设备电量。

隐私、权限声明

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

相关权限查看文档

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

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

许可协议

MIT协议