Tauri Demo 运行指南与下载
仓库提供 sdk/tauri/example,一个微信风格的完整 IM 桌面应用(Tauri 2 + 原生 TypeScript):登录、单聊、群聊、消息互动、好友、音视频通话,以及 Tauri 桌面特性(系统通知、托盘、多窗口、拖放与路径文件)。它也是 SDK 端到端测试的载体,适合快速验证 SDK 在桌面端的实际行为,也可以把界面结构、状态管理与事件处理直接搬进自己的项目。
功能范围
| 模块 | 覆盖内容 |
|---|---|
| 账号 | 密码登录 / 注册、登录错误提示、退出登录、引擎状态与连接状态指示 |
| 会话 | 会话列表(未读角标、置顶、免打扰、草稿摘要、最后消息预览)、置顶与标记未读、清空聊天记录 |
| 消息 | 文本、图片、文件、语音(录音)、视频、位置;表情面板、引用回复、转发、表情回应、撤回、失败重发、已读回执、正在输入、草稿自动保存、日期分隔 |
| 好友 | 添加好友(验证消息)、申请的发送与接受、备注、黑名单、删除、好友资料页 |
| 群组 | 发起群聊(多选成员)、群设置(成员网格、邀请与移除、改名)、退群、解散 |
| 桌面 | 系统通知(点击打开会话)、托盘模式、多窗口打开同一会话、拖放与系统对话框的路径文件发送、任务栏角标、下载与本地预览 |
| 音视频 | 语音 / 视频通话:发起、来电接听与拒绝、静音与摄像头切换、挂断 |
下载
Demo 源码包(示例 App 完整源码,依赖已指向已发布的 npm 与 crates.io 制品,无需克隆 SDK 仓库):deeprespond-im-tauri-demo-1.0.0-alpha.zip,校验值见同目录的 DEMO_PACKAGE_SHA256SUMS。
从仓库工作区构建同样的包:
bash
make sdk-tauri-demo-package # 输出 release/sdk-tauri-<版本>/deeprespond-im-tauri-demo-<版本>.zip前置条件
- Node.js ≥ 20.19 与 pnpm ≥ 9;Rust ≥ 1.90(rustup 安装)。
- 系统依赖(编译 Tauri 与 WebKitGTK):
- Windows:WebView2 运行时(Windows 10/11 自带)+ Visual Studio C++ 构建工具;
- macOS:Xcode Command Line Tools(
xcode-select --install); - Linux:WebKitGTK 4.1 等开发包,Ubuntu/Debian 上:
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
- 一个已部署并可访问的 IM 服务端,以及在控制台创建应用得到的 AppKey。
- 音视频通话需要在控制台的应用策略中开启,并配置可被桌面访问的媒体服务(LiveKit)地址;Linux 的 WebKitGTK 是否带 WebRTC 因发行版而异,见各系统的限制。
构建与运行
bash
unzip deeprespond-im-tauri-demo-1.0.0-alpha.zip
cd deeprespond-im-tauri-demo-1.0.0-alpha
pnpm install
export IM_APP_KEY='org_name#app_name' # 控制台应用详情中的 AppKey
export IM_API_URL='https://im.example.com' # IM 服务地址
pnpm tauri dev # 开发运行(改动热更新)
pnpm tauri build # 生成安装包:Windows(NSIS)、macOS(.app)、Linux(deb/AppImage)- 服务端信息从环境变量读取;不设置时应用仍会启动,登录页显示初始化失败的提示。
- Windows 上设置环境变量用
set IM_APP_KEY=…(CMD)或$env:IM_APP_KEY='…'(PowerShell)。 - 可选环境变量:
IM_TRAY=1(关闭全部窗口后驻留托盘,通知继续可用)、IM_SINGLE_INSTANCE=0(关闭单实例限制,用于多进程测试)。 - 通知、角标等系统集成的注意事项(签名、Info.plist、安装包)见快速集成 · 打包与签名。
使用提示
- 登录:在登录卡片中输入用户名与密码(账号由你的业务服务端创建,或直接在服务端注册;demo 的登录卡片也支持切换为注册模式)。登录状态保存在系统钥匙串中,关闭应用再次启动会自动恢复登录。
- 双用户互测:同一台电脑的同一个系统用户只能运行一个实例。要体验两个用户互发消息与通知,请在另一台电脑上运行,或在浏览器中用 Web Demo 登录另一个用户。
- 路径文件:聊天页「+ → 桌面文件」走系统文件对话框(Rust 按路径读取上传,不占用页面内存);把文件拖入聊天窗口也可以直接发送。
- 通知:Linux 下需要桌面环境的通知服务(GNOME/KDE 自带);Windows 下经过安装包安装后通知才完整可用,见打包与签名。
- 运行日志:「我 → 运行日志」可以看到 SDK 的运行日志,排查问题时先看这里。
