更新记录

0.1.0(2026-05-21)

0.1.0

  • 初始化 uni-app x UTS 插件结构。
  • 新增 Android 通知渠道、CallStyle、全屏 Intent、锁屏提醒的开发骨架。
  • 新增 iOS 普通通知点击、APNs token、PushKit/CallKit 可选增强的开发骨架。
  • 新增 init、requestPushToken、onVideoCallEvent、showIncomingCall、endIncomingCall、getCapabilities 等接口声明。
  • 补充插件市场发布所需的权限、隐私、兼容性和使用说明。

平台兼容性

CX 视频通话原生提醒 UTS 插件

用于 uni-app / uni-app x App 的视频通话来电提醒。插件封装系统通知、锁屏/后台提醒、接听/拒绝/取消/超时事件,不包含 RTC 音视频能力。

  • App 前台:不弹系统来电页,通知页面层直接进入视频通话。
  • App 后台/锁屏:Android 尝试通话样式通知或全屏提醒;iOS 国内版使用普通通知点击进入。
  • App 退出后:在系统推送可触达的情况下提醒用户。

适用范围

平台 支持情况 说明
uni-app Android/iOS App 支持 传统 uni-app App 使用 JS import 接入 UTS 插件
uni-app x Android App 支持 高优先级通知、CallStyle、全屏 Intent、锁屏提醒和权限降级
uni-app x iOS App 支持 中国大陆上架默认普通 APNs/UniPush 通知,点击后拉起 App
Web/小程序/鸿蒙 暂不支持 本插件是 App 原生提醒能力

安装

通过插件市场导入后,插件目录应位于:

uni_modules/cx-video-call-notify

使用时只允许从插件根目录导入,不要导入 utssdk 内部文件。

接入

import {
  init,
  requestPushToken,
  onVideoCallEvent,
  endIncomingCall
} from "@/uni_modules/cx-video-call-notify"

启动后调用 init,再通过 requestPushToken 获取系统推送 token 并上报后端。页面层通过 onVideoCallEvent 监听 answerrejecttimeoutcancel 等事件。

init({
  appName: "椿熙照护",
  androidChannelId: "video_call",
  androidChannelName: "视频通话提醒",
  callTimeoutSeconds: 60,
  iosMode: "apns",
  enableCallKit: false
})

接听流程必须先校验:

  1. 收到 answer 或通知点击事件。
  2. 调后端校验 callId 是否仍有效。
  3. 有效则 endIncomingCall({ reason: "answered" }),并跳转 /pages/videoCall/videoCall?...&autoJoin=true
  4. 无效则 endIncomingCall({ reason: "invalid" }),不进入视频页。

拒绝和超时需要上报后端:

  • reject:关闭提醒并同步被叫拒绝。
  • timeout:关闭提醒并同步无人接听。
  • cancel:呼叫方取消后关闭提醒,不允许再接入。

后端需在创建通话前判断护理员状态:前台在线、可通知、完全不在线、忙线。完全不在线包含退出登录、token 无效、超过 2 小时未登录/活跃,此时不创建通话、不推送。

权限说明

Android 需要以下权限:

  • POST_NOTIFICATIONS:Android 13+ 通知权限。
  • USE_FULL_SCREEN_INTENT:后台/锁屏全屏提醒。
  • VIBRATE:来电提醒震动。
  • WAKE_LOCK:锁屏提醒和唤醒屏幕。
  • FOREGROUND_SERVICE:提醒保活或后续通话保持能力预留。

iOS 国内上架版本默认只使用普通通知能力,不默认启用 PushKit/CallKit。非中国大陆或企业分发版本如需 PushKit + CallKit,需要业务方自行确认 Apple 审核和地区合规风险。

隐私说明

插件本身不采集音视频内容,不内置服务器地址。插件会在本地处理:

  • callId
  • channelId
  • 呼叫方/被叫方用户标识
  • 推送 token
  • 接听、拒绝、取消、超时事件

如果业务方将上述数据上报到自有服务器,应在业务 App 的隐私政策中说明数据用途、保存时间和用户权利。

限制说明

  • 插件不负责 RTC 入会、音视频采集、通话凭证生成。
  • iOS 不承诺 App 被用户强杀后 100% 唤醒。
  • Android 不承诺所有厂商机型都能全屏弹出;全屏权限受限时会降级为 heads-up/锁屏通知。
  • endIncomingCall 只做本地提醒清理,不反向触发业务事件。

发布前检查

  • package.json 中的插件 ID、作者联系方式、仓库地址需发布前确认。
  • 真机验证 Android manifest、iOS plist/privacy plist。
  • 在 HBuilderX 自定义基座中完成 Android/iOS UTS 编译验证。
  • 准备插件市场截图、功能说明、权限说明和更新日志。

详细开发方案见插件工程文档。

隐私、权限声明

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

Android: 1. POST_NOTIFICATIONS:用于 Android 13 及以上系统展示视频来电通知。 2. USE_FULL_SCREEN_INTENT:用于在系统允许的情况下展示后台/锁屏视频来电提醒。 3. VIBRATE:用于视频来电时震动提醒。 4. WAKE_LOCK:用于锁屏提醒、点亮屏幕或保持提醒流程。 5. FOREGROUND_SERVICE:用于 Android 后台限制较严格时维持必要的提醒流程。 iOS: 1. 通知权限:用于展示普通系统通知,用户点击通知后进入 App 并由业务侧校验通话状态。 说明: iOS 中国大陆上架版本默认不启用 PushKit/CallKit。非中国大陆或企业分发版本如需启用 PushKit/CallKit,应由接入方自行确认 Apple 审核和地区合规要求。

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

本插件本身不采集音视频内容,不内置服务器地址,不向插件作者或第三方服务器上传数据。 插件会在本地处理以下业务数据: 1. callId:用于标识一次视频通话邀请。 2. channelId:用于业务侧进入对应视频通话。 3. callerId、callerName:用于展示呼叫方信息。 4. targetUserId:用于确认被叫用户身份。 5. 推送 token:用于业务方后端向设备发送视频来电提醒。 6. 用户操作事件:接听、拒绝、取消、超时、通知点击等,用于业务侧同步通话状态。 服务器地址: 无固定服务器地址。插件不内置服务器。接入方如需将 push token、callId、userId、通话事件上报到自有业务后端,应以接入方实际服务器地址为准,并在接入方 App 的隐私政策中说明数据用途。

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

无。 本插件不包含广告,不展示开屏广告、插屏广告、信息流广告、横幅广告或激励广告,也不集成广告 SDK。

暂无用户评论。