UniApp 微信小程式 Demo
倉庫中的 sdk/uniapp/demo-miniprogram 是一個基於 @deeprespond/im-uniapp/miniprogram 的微信小程式示例,同一份程式碼也能編譯為 H5 在瀏覽器中除錯。頁面按微信的結構組織:“訊息”“通訊錄”“我”三個標籤頁,加上聊天、群聊、好友資料、好友申請等二級頁面。可以用它試小程式端 SDK 的功能,也可以把其中的 store 和頁面狀態處理搬到自己的 UniApp 工程中。
功能範圍
| 模組 | 覆蓋內容 |
|---|---|
| 賬號 | 密碼登入和註冊、自動恢復登入、臨時修改伺服器地址、執行日誌 |
| 會話 | 未讀角標、置頂、標為未讀、草稿、正在輸入、搜尋、清空聊天記錄、tabBar 上的未讀角標 |
| 訊息 | 文字、表情、圖片、影片、檔案、語音、位置;撤回、表情回應、轉發、重發;自動標記已讀 |
| 好友 | 傳送、接受和拒絕好友申請,備註、黑名單、刪除;通訊錄搜尋 |
| 群聊 | 發起群聊、邀請和移除成員、改群名、退群、解散,群內的系統提示 |
| 資料 | 修改暱稱和頭像、好友資料頁 |
| 音影片 | 一對一通話的入口只在 H5 中顯示;小程式端 SDK 暫不支援通話和頻道的媒體,介面中會提示 |
執行
bash
cd sdk/uniapp/demo-miniprogram
cp .env.example .env.local
# 编辑 .env.local;不要提交真实密码、Ticket 或长期密钥。
pnpm install有兩種執行方式:
| 方式 | 命令 | 說明 |
|---|---|---|
| H5 瀏覽器除錯 | pnpm dev:h5 | 開啟 http://127.0.0.1:5176,在瀏覽器中除錯頁面邏輯和 SDK 呼叫。Vite 代理把 /client(含 WebSocket)轉發到 IM 服務,把 /im-private、/im-public 轉發到 S3 相容儲存 |
| 微信開發者工具 | pnpm dev:mp-weixin | 輸出在 dist/dev/mp-weixin,用微信開發者工具匯入這個目錄;釋出時用 pnpm build:mp-weixin 構建 |
在微信開發者工具中除錯時,可以關閉“合法域名校驗”;在真機上執行時,要在小程式後臺配置 API、Socket 和檔案下載的域名。微信基礎庫最低 2.21.3。
環境變數
把 .env.example 複製為 .env.local 後按需填寫:
| 變數 | 說明 |
|---|---|
VITE_IM_APP_KEY | 應用的 App Key,預設 org#app |
VITE_IM_API_URL | IM 服務地址;H5 除錯時填本地服務即可(由開發代理轉發) |
VITE_IM_WS_URL | WebSocket 地址,可選 |
平臺說明
- 錄音、定位、開啟檔案等能力由小程式的
wx.*介面提供;H5 中瀏覽器沒有相應許可權時,介面顯示 SDK 給出的失敗原因。 - 小程式端目前不支援通話和頻道的媒體(
channels.supported為false),介面中會提示;一對一通話的入口只在 H5 中顯示。 - 登入憑證由業務服務端簽發,不要把 AppSecret 放進小程式。
測試與原始碼包
頁面邏輯和 SDK 呼叫在 H5 目標下用 Playwright 做了三賬號測試;微信開發者工具和真機上的 wx.* 原生能力需要在有圖形介面的環境中另外測試。
Demo 原始碼包(1.0.1,不含依賴和本地配置):deeprespond-uniapp-demo-miniprogram-1.0.1.zip
小程式端使用的 SDK 的安裝和下載見小程式 SDK。
