UniApp SDK: integration and downloads
Add chat to a UniApp project and ship the same business code to H5, WeChat mini programs and Apps (Android / iOS). Each target uses a different entry, described below.

| Target | Use | Notes |
|---|---|---|
| H5 | @deeprespond/im-uniapp/h5 | Built on the Web SDK; supports standalone RTC channels |
| WeChat mini program | @deeprespond/im-uniapp/miniprogram | Built on the mini program SDK; RTC channels are query-only |
| App (Android / iOS) | @deeprespond/im-uniapp/app + uni_modules native plugins | The native plugins handle push, the system incoming-call screen and RTC media |
The JavaScript SDK is currently 1.1.1 and the native plugins 1.0.0-alpha; see Versions and support.
Install
npm install @deeprespond/im-uniapp@1.1.1That one package is enough for H5 and mini programs. For Apps, also unzip the native plugins you need into your project's uni_modules/ directory:
| Plugin | Purpose | Download |
|---|---|---|
| All plugins | Everything below in one package | deeprespond-uniapp-plugins-1.0.0-alpha.zip |
deeprespond-im | Native IM capabilities | Download |
deeprespond-rtc | Audio, video and RTC media | Download |
dr-rtc-video / dr-rtc-video-x | Video view components (uni-app / uni-app x) | Video component · Video component X |
| Push channels | FCM and Chinese vendor channels; pick what you need | FCM · Huawei · Honor · Xiaomi · OPPO · vivo · Meizu |
Checksums: UNI_MODULES_SHA256SUMS. UNIAPP_RELEASE.md in the plugin directory lists the dependency order. Once the plugins are on the DCloud plugin market, links will be added here; new versions get a new download directory and old addresses keep working.
For intranet projects without npm access, install the offline package: download deeprespond-im-uniapp-1.0.0-alpha.tgz and run npm install ./deeprespond-im-uniapp-1.0.0-alpha.tgz.
Create the client (H5)
Put the H5 import inside H5 conditional compilation; sign-in, conversations and messages then work as in the Web SDK:
// #ifdef H5
import { createDRUniAppH5Client } from '@deeprespond/im-uniapp/h5';
const im = createDRUniAppH5Client({ appKey: 'org#app', apiUrl: 'https://im.example.com' });
if (!im.auth.currentUser) await im.auth.loginWithTicket({ ticket }); // 业务服务端签发的登录凭证
const list = im.conversations.list(); // 会话列表:先显示本地数据,后台同步
list.subscribe(() => render(list.getSnapshot().items));
// #endifProjects already using @deeprespond/im-web can import from @deeprespond/im-web/uniapp-h5 instead; it's the same entry. For mini program and App targets, see the matching demo.
Runnable demos
| Demo | Repository directory | Source package | Guide |
|---|---|---|---|
| H5 | sdk/uniapp/demo | deeprespond-uniapp-demo-h5-1.0.1.zip | H5 demo |
| WeChat mini program | sdk/uniapp/demo-miniprogram | deeprespond-uniapp-demo-miniprogram-1.0.1.zip | Mini program demo |
| App (Android / iOS) | sdk/uniapp/demo-app | deeprespond-uniapp-demo-app-1.0.1.zip | App demo |
Checksums for the source packages: DEMO_PACKAGES_SHA256SUMS.
What you can build
| Feature | Docs |
|---|---|
| Sign-in, conversations, messages, friends, groups | Same as the Web SDK: Initialization, sign-in and connection, Conversations, Messages |
| Streaming AI bot replies | AI replies |
| Standalone RTC channels (H5, App) | Web channels, App demo |
Audio and video in H5
- Requires HTTPS or
localhostand browser WebRTC. Nothing is captured by default: turn on the microphone or camera from a user action, and handle denied permissions and blocked autoplay. - When the page unloads, cancel any join still in progress, call
leave()on joined channels, then clean up subscriptions and video elements. Removing page elements alone doesn't leave the channel. - The H5 entry isn't a native audio and video implementation for Apps; Apps use the
deeprespond-rtcplugin.
Next steps
- H5 demo, Mini program demo, App demo: complete examples you can run.
- Versions and support: plugin release status and known limits.
