iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
Modern Web

FlowNest系列 第 17

Day17_聊天室功能精進

  • 分享至 

  • xImage
  •  

訊息格式url點擊功能

首先改造了聊天室的訊息系統。在 chat.ts 新增分享型訊息的欄位,讓 sendMessage 函數能夠識別傳入的內容類型。聊天室中的url已經可以直截點選。
https://ithelp.ithome.com.tw/upload/images/20250928/20168406YZSOn7DVYr.png

ChatPage.vue 功能重構

重新整理了 ChatPage.vue 的傳送訊息邏輯:

  • 會自動偵測第一個網址,如果能抓到預覽資料就轉成分享卡片
  • 抓不到預覽的話至少會把原訊息裡的網址變成可點擊的連結
  • 聊天室列表跟右側訊息板新增了 fallback 名稱邏輯,現在可以看見是誰傳的訊息
    https://ithelp.ithome.com.tw/upload/images/20250928/20168406AXCj5ljCCT.png

全局未讀訊息提醒系統

為了讓使用者在任何頁面都能看到有新訊息,實作了 useChatThreads store。使用者登入時開始監聽 Firestore 的 thread 資料,即時計算個人的未讀訊息總數,在導航列和下拉選單都掛上 badge 提示。當切換會話或重新打開視窗時,就會把未讀數量歸零。
https://ithelp.ithome.com.tw/upload/images/20250928/20168406PXnp2g686K.png

編碼問題大掃除

解決亂碼問題:

  • ChatPageNavBar 重新改寫成乾淨的 UTF-8 編碼
  • 逐一確認所有中文提示文字的顯示
  • users.ts 增加 resolveDisplayName 函數,當使用者沒有設定名稱時會用 email 帳號或 uid 前六碼做 fallback
  • 畫面不會出現那些亂碼

上一篇
Day16_踩雷日記/chat報錯排查_02
系列文
FlowNest17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言