更新记录

1.0.0(2026-07-27)

初始化版本


平台兼容性

uni-app(5.21)

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

uni-app x(5.21)

Chrome Safari Android Android插件版本 iOS 鸿蒙 微信小程序
× × 6.0 1.0.0 × × ×

call-notice

Android UTS 原生混编插件。业务层收到 socket 消息后,调用插件显示高优先级来电通知; 锁屏时通过 fullScreenIntent 展示原生来电 Activity。

调用

import {
  showIncomingCall,
  dismissIncomingCall,
  requestNotificationPermission,
  canUseFullScreenIntent,
  openFullScreenIntentSettings,
  consumeLastCallAction
} from '@/uni_modules/call-notice'

requestNotificationPermission((granted) => {
  console.log('通知权限', granted)
})

// 放进 socket.onMessage 中
showIncomingCall({
  callId: 'call-10001',
  callerName: '张三',
  callerSubtitle: '邀请你进行视频通话',
  payload: JSON.stringify({ roomId: 'room-8', type: 'video' }),
  timeoutSeconds: 60,
  openImmediately: true
})

// 对方取消或超时
dismissIncomingCall('call-10001')

一个完整的 socket 消息分支可以这样接:

const socket = uni.connectSocket({
  url: 'wss://你的域名/ws',
  complete: () => {}
})

socket.onMessage(({ data }) => {
  const message = JSON.parse(data)
  if (message.event === 'call.invite') {
    showIncomingCall({
      callId: message.callId,
      callerName: message.callerName,
      callerSubtitle: message.video ? '邀请你进行视频通话' : '邀请你进行语音通话',
      payload: JSON.stringify(message),
      timeoutSeconds: 60
    })
  } else if (message.event === 'call.cancel') {
    dismissIncomingCall(message.callId)
  }
})

App.vueonShow 中读取用户操作:

const raw = consumeLastCallAction()
if (raw) {
  const result = JSON.parse(raw)
  if (result.action === 'accept') {
    // 进入你的 WebRTC/音视频通话页面
  }
}

Android 系统限制

  • Android 13+ 首次使用前必须由用户授权通知权限。
  • Android 14+ 可能需要用户在系统设置中允许“全屏通知”,可先调用 canUseFullScreenIntent(),未开启时调用 openFullScreenIntentSettings()
  • Manifest 和 Activity 配置需要制作自定义调试基座后生效。
  • 纯 JS WebSocket 只在应用进程存活时可靠。若要求应用被系统杀死后仍能收到来电, 服务端应同时发送厂商推送/FCM,并由原生推送回调调用本插件,或实现合规的前台服务。
  • 部分国产 ROM 还需用户允许通知、锁屏通知、后台弹出界面和自启动。

隐私、权限声明

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

通知权限用于显示来电通知;全屏通知权限用于锁屏来电页;振动权限用于来电提醒。

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

插件不会向第三方发送数据

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

暂无用户评论。