更新记录

1.0.0(2026-02-05) 下载此版本

测试


平台兼容性

以下是 KioskPlugin 的通用插件说明文档(适用于基于 uni-app + 原生 Android 插件的 Kiosk 模式场景):


📦 插件名称:KioskPlugin

用于在 Android 设备上实现 Kiosk Mode(霸屏/设备锁定模式),常用于自助终端、信息亭、工业手持机、考试设备等需要限制用户操作的场景。


🔧 功能特性

功能 说明
isDeviceOwner() 检测当前 App 是否已被设置为 设备所有者(Device Owner)
startLockTask() 启动 锁定任务模式(Lock Task Mode),进入全屏霸屏状态
stopLockTask() 退出霸屏模式,恢复普通应用行为
✅ 自动隐藏状态栏、导航栏 防止用户下拉通知或返回桌面
✅ 禁用 Home 键、Recent 键 需配合 Device Owner 权限

⚠️ 注意:必须将 App 设置为 Device Owner 才能生效,否则仅能部分限制界面。


📱 使用前提条件

  1. Android 5.0+(API 21+)
  2. 设备已开启 USB 调试
  3. 通过 ADB 命令将 App 设置为 设备所有者(Device Owner)
    adb shell dpm set-device-owner <你的包名>/.DeviceAdminReceiver

    示例:adb shell dpm set-device-owner com.example.kiosk/.DeviceAdminReceiver

  4. App 中需包含 DeviceAdminReceiver 实现(通常由插件提供)

💡 JavaScript 调用示例(uni-app)

// 引入原生插件
const kiosk = uni.requireNativePlugin('KioskPlugin');

if (!kiosk) {
  uni.showToast({ title: 'KioskPlugin 未加载,请使用自定义基座', icon: 'none' });
  return;
}

// 1. 检查是否为设备所有者
kiosk.isDeviceOwner(res => {
  const result = JSON.parse(res);
  console.log('Is Device Owner:', result.result); // true / false

  if (result.result) {
    // 2. 进入霸屏模式
    kiosk.startLockTask(callbackRes => {
      uni.showToast({ title: '✅ 已进入霸屏模式', icon: 'none' });
    });
  } else {
    uni.showToast({ title: '❌ 请先设为设备所有者', icon: 'none' });
  }
});

// 3. 退出霸屏(可选)
// kiosk.stopLockTask(() => {
//   uni.showToast({ title: '已退出霸屏', icon: 'none' });
// });

📁 插件文件结构(HBuilderX 项目)

/nativeplugins/
  └── KioskPlugin/
      ├── android/
      │   └── kiosk-plugin.aar        ← 原生插件包
      └── package.json                ← 插件元信息(必须存在)

package.json 内容示例:

{
  "name": "KioskPlugin",
  "version": "1.0.0"
}

📄 manifest.json 配置

已在你的配置中正确声明:

"nativePlugins": {
  "KioskPlugin": {
    "__plugin_info__": {
      "name": "KioskPlugin",
      "platforms": "Android"
    }
  }
}

⚠️ 注意事项

问题 解决方案
插件返回 undefined 必须使用 自定义运行基座(不能用默认调试基座)
isDeviceOwner 返回 false 未通过 ADB 设置设备所有者
无法禁用 Home 键 未获得 Device Owner 权限,普通 App 无法拦截 Home 键
设备已登录 Google 账号 无法设置 Device Owner,需恢复出厂设置
插件崩溃 检查 AndroidManifest.xml 是否注册了 DeviceAdminReceiver

🛠️ 如何设置 Device Owner(关键步骤)

  1. 安装你的 App 到测试设备
  2. 确保设备 未登录任何 Google 账户
  3. 电脑连接设备,执行命令:
    adb shell dpm set-device-owner com.your.package/.DeviceAdminReceiver

    包名需与 manifest.json 中一致,Receiver 类名由插件提供(常见为 .DeviceAdminReceiver.AdminReceiver

  4. 成功后会提示:
    Success: Device owner set to package ComponentInfo{...}

📌 适用场景

  • 自助售票机 / 取号机
  • 商场导览终端
  • 工厂 PDA 设备
  • 考试专用平板
  • 数字标牌(Digital Signage)

❓ 常见问题

Q:能否在非 Root 设备上使用?
A:可以!但必须通过 ADB 设置 Device Owner,且设备不能有 Google 账号。

Q:iOS 支持吗?
A:不支持。iOS 的 Kiosk 模式需通过 MDM(移动设备管理)Guided Access 实现,无法通过普通插件完成。

Q:退出霸屏后如何恢复?
A:调用 stopLockTask(),或重启 App,或卸载 Device Owner(需 ADB 命令)。


如果你有该插件的官方文档或 .aar 文件来源,建议优先参考其具体 API。以上为通用 Kiosk 插件的标准行为。

如需我帮你写完整的 DeviceAdminReceiver 配置或 ADB 脚本,也可以告诉我!

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。