Skip to main content
Glama
REQ2_roundtrip.md4.29 kB
--- id: REQ-ios-notification-image group_id: ai-magic-editor type: Requirement feature: ios-notification-image --- <!-- info-section --> > status: Reviewed > update_date: 2025-09-30 > summary_context: 讓 iOS App 在背景或關閉時收到推播通知可以顯示圖片 <!-- id: sec-root --> # 需求文件 (Requirement): iOS Push Notification 圖片顯示 <!-- id: sec-goal-context --> ### 1. 核心目標與背景 (Goal & Context) <!-- id: blk-goal, type: list --> **目標 (Goal)** - 讓 iOS App 的 Push Notification 支援圖片顯示功能,提升通知的視覺效果與資訊傳達能力。 <!-- id: blk-user-story, type: list --> **使用者故事 (User Story)** - 身為一個 App 使用者,我想要在收到推播通知時看到圖片,以便更清楚了解通知內容。 <!-- id: blk-context-desc, type: list --> **背景說明** - 後端 `REQ-push-notification-api` 已支援發送包含 Image URL 的 FCM payload - iOS App 目前已整合 Firebase Messaging,但尚未實作圖片顯示功能 - iOS 系統需要透過 Notification Service Extension 來下載並附加圖片到通知內容 <!-- id: sec-functional-scope --> ### 2. 功能與邊界定義 (Functional Scope) <!-- id: blk-func-req-list, type: list --> **功能規格 (Functional Requirements)** - 當後端 FCM payload 包含 `image` URL 且 App 處於背景或關閉狀態時,通知必須顯示該圖片 - 支援常見圖片格式:PNG, JPG, GIF - 圖片顯示在通知內容中(使用 iOS 系統預設的 Rich Notification 樣式) - 圖片下載失敗或超時時,退回顯示純文字通知(不阻斷通知發送) - 實作 Notification Service Extension 來處理圖片下載與附加 <!-- id: blk-out-of-scope-list, type: list --> **範圍外 (Out of Scope)** - App 在前景時的圖片通知支援(保持現有行為,未來需求確認後再開發) - 自訂 Notification UI(Notification Content Extension) - 通知互動按鈕(Action buttons) - 影片或其他多媒體格式支援 - 本地圖片支援(只處理遠端 URL) - 通知歷史記錄功能 - 圖片快取機制(每次重新下載) <!-- id: sec-non-functional --> ### 3. 非功能規格與限制 (Non-Functional Requirements & Constraints) <!-- id: blk-non-func-req-list, type: list --> **非功能規格 (Non-Functional Requirements)** - **效能**: 圖片下載超時限制為 5 秒,超時後退回純文字通知 - **相容性**: 支援 iOS 14.0 以上版本(與 App 最低支援版本一致) - **可靠性**: 圖片處理失敗不影響通知本身的正常顯示 - **安全性**: 只接受 HTTPS 圖片 URL <!-- id: blk-tech-constraints-list, type: list --> **技術限制** - 圖片大小遵循 iOS 系統限制(< 10MB) - Notification Service Extension 有 30 秒執行時間限制 - Service Extension 只在 App 非前景狀態時被系統調用 - 需要設定 FCM payload 的 `mutable-content: 1` 才能觸發 Service Extension <!-- id: sec-use-cases --> ### 4. 使用場景與驗收標準 (Use Cases & Acceptance) <!-- id: blk-use-cases-list, type: list --> **使用場景 (Use Cases)** - 用戶將 App 切換到背景,後端發送帶有產品圖片的促銷通知,用戶在通知中心看到圖文並茂的通知 - App 完全關閉時,用戶收到包含活動海報的推播,下拉通知後看到完整圖片 - 圖片 URL 失效或網路不佳時,用戶仍能收到純文字通知,不會遺漏重要資訊 - 用戶正在使用 App(前景),收到推播時顯示純文字 banner(現有行為不變) <!-- id: blk-acceptance-list, type: list --> **驗收標準 (Acceptance Criteria)** - App 在背景或關閉狀態時,收到包含有效 `image` URL 的推播,通知必須顯示圖片 - 圖片下載成功後,通知樣式為 Rich Notification(可展開查看完整圖片) - 圖片下載失敗或超過 5 秒超時,通知退回顯示純文字(標題 + 訊息) - 只接受 HTTPS 圖片 URL,HTTP URL 視為無效並退回純文字通知 - App 在前景時,通知行為與現有實作一致(不顯示圖片) - 測試圖片格式:PNG, JPG, GIF 皆可正常顯示 - 後端無需更改 API,沿用現有 FCM payload 格式(需確認 `mutable-content: 1` 設定)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leo7nel23/KnowkedgeSmith-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server