更新记录
1.0.0(2026-07-18)
初始化版本发布。
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | √ | 1.0.0 | 5.0 | 1.0.0 | 12 | 1.0.0 | 5.0.0 | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(5.0)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 | 微信小程序 |
|---|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | 5.0.0 | 1.0.0 | × |
概述
XF-ONVIFInfoUTS 是纯 API 模式的 ONVIF 插件,支持 Android、iOS、Harmony。插件不包含播放器、预览组件或 VLC/FFmpeg,提供 WS-Discovery 自动搜索、设备信息、ONVIF 抓拍,以及标准 Recording / Search / Replay 服务流程。
通过 clientId/sessionId 可同时管理多台摄像机。createSession 统一保存 host、port、username、password、超时和默认 Profile Token,后续接口只需传 sessionId。账号和密码仅保存在应用进程内存中,closeSession 会清理凭据和未完成请求。
推荐流程:discoverCameras → createSession → getCameraInfo / captureSnapshot / searchRecordings → getReplayUri → closeSession。
getReplayUri 返回摄像机提供的 Replay URI,通常为 RTSP 地址;插件不播放该地址,也不提供历史录像文件下载。当前版本已通过协议 fixture、Mock SOAP 服务自身行为测试、源码契约测试及三端编译验证;这些测试尚未让三端 native 网络实现连接 Mock 服务,也尚未使用真实摄像头验证,设备兼容性需要后续实机联调。
使用前提
Android
- 最低 Android 21,需要 INTERNET、网络状态、Wi-Fi 状态和组播权限。
- 局域网 HTTP 摄像机需要允许 cleartext 流量,插件 Manifest 已声明。
iOS
- 最低 iOS 12。应用需要配置局域网访问用途说明,并允许访问摄像机所在网络。
Harmony
- 最低 HarmonyOS 5.0.0,需要
ohos.permission.INTERNET。
摄像机应实现所调用的 ONVIF Device、Media、Recording、Search、Replay 服务。Recording/Search/Replay 不是所有 ONVIF 摄像机的必选能力。
插件接口
所有接口均使用 success、fail、complete 回调。失败对象包含 errSubject、errCode、errMsg、codeName 和可选 detail,错误码范围为 9201001 至 9201012。
createSession
创建摄像机会话。clientId 可作为稳定 sessionId;留空时自动生成。
uni-app项目中(nvue)调用示例:
import { createSession } from "@/uni_modules/XF-ONVIFInfoUTS"
createSession({ config: { clientId: "camera-1", host: "192.168.1.10", port: 80, username: "admin", password: "" }, complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { createSession } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifCreateSessionOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { config: { clientId: "camera-1", host: "192.168.1.10", port: 80 }, complete: (res : any) => { console.log(res) } } as XFOnvifCreateSessionOptions
createSession(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
updateSession
更新指定 sessionId 的连接配置,并清除已缓存的服务和 Profile 信息。
uni-app项目中(nvue)调用示例:
import { updateSession } from "@/uni_modules/XF-ONVIFInfoUTS"
updateSession({ sessionId: "camera-1", config: { password: "" }, complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { updateSession } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifUpdateSessionOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", config: { timeoutMs: 10000 }, complete: (res : any) => { console.log(res) } } as XFOnvifUpdateSessionOptions
updateSession(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
closeSession
关闭会话、取消该会话的进行中请求并清理凭据。
uni-app项目中(nvue)调用示例:
import { closeSession } from "@/uni_modules/XF-ONVIFInfoUTS"
closeSession({ sessionId: "camera-1", complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { closeSession } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifCloseSessionOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", complete: (res : any) => { console.log(res) } } as XFOnvifCloseSessionOptions
closeSession(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
discoverCameras
通过 WS-Discovery UDP 组播搜索局域网 ONVIF 设备并按 EndpointReference/XAddr 去重。
uni-app项目中(nvue)调用示例:
import { discoverCameras } from "@/uni_modules/XF-ONVIFInfoUTS"
discoverCameras({ timeoutMs: 4000, complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { discoverCameras } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifDiscoverOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { timeoutMs: 4000, complete: (res : any) => { console.log(res) } } as XFOnvifDiscoverOptions
discoverCameras(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
getCameraInfo
读取 Device 信息、服务能力、Media Profile、码流 URI 和抓拍 URI。
uni-app项目中(nvue)调用示例:
import { getCameraInfo } from "@/uni_modules/XF-ONVIFInfoUTS"
getCameraInfo({ sessionId: "camera-1", complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { getCameraInfo } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifSessionOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", complete: (res : any) => { console.log(res) } } as XFOnvifSessionOptions
getCameraInfo(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
captureSnapshot
调用 Media GetSnapshotUri 下载 JPEG;先写临时文件,再原子替换目标文件。
uni-app项目中(nvue)调用示例:
import { captureSnapshot } from "@/uni_modules/XF-ONVIFInfoUTS"
captureSnapshot({ sessionId: "camera-1", includeBase64: false, complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { captureSnapshot } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifSnapshotOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", profileToken: "", complete: (res : any) => { console.log(res) } } as XFOnvifSnapshotOptions
captureSnapshot(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
searchRecordings
按 ISO-8601 时间范围执行 FindRecordings、轮询 GetRecordingSearchResults,最后调用 EndSearch。接口只查询历史录像元数据。
uni-app项目中(nvue)调用示例:
import { searchRecordings } from "@/uni_modules/XF-ONVIFInfoUTS"
searchRecordings({ sessionId: "camera-1", startTime: "2026-07-17T01:10:00Z", endTime: "2026-07-17T01:20:00Z", complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { searchRecordings } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifSearchRecordingsOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", startTime: "2026-07-17T01:10:00Z", endTime: "2026-07-17T01:20:00Z", complete: (res : any) => { console.log(res) } } as XFOnvifSearchRecordingsOptions
searchRecordings(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本
getReplayUri
调用 Replay GetReplayUri 返回指定 Recording Token 的 Replay URI。该接口不播放、不转码,也不提供历史录像文件下载。
uni-app项目中(nvue)调用示例:
import { getReplayUri } from "@/uni_modules/XF-ONVIFInfoUTS"
getReplayUri({ sessionId: "camera-1", recordingToken: "recording-1", complete: (res) => { console.log(res) } })
uni-app x项目(uvue)中调用示例:
import { getReplayUri } from "@/uni_modules/XF-ONVIFInfoUTS"
import { XFOnvifReplayUriOptions } from "@/uni_modules/XF-ONVIFInfoUTS/utssdk/interface.uts"
let options = { sessionId: "camera-1", recordingToken: "recording-1", complete: (res : any) => { console.log(res) } } as XFOnvifReplayUriOptions
getReplayUri(options)
可用性
iOS、Android、Harmony系统
可提供的1.0.0及更高版本

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 289
赞赏 0
下载 12436478
赞赏 1934
赞赏
京公网安备:11010802035340号