跳轉到內容
supastack
瀏覽檔案
WebTanStack Start

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh-tw/docs/desktop/first-feature.md (or send Accept: text/markdown).

構建你的第一個功能

從一處原生外殼改動到一個已驗證視窗的端到端演練。

詢問本指南
開啟方式

初學者演練

先決條件:閱讀下面兩篇入門指南,完成 Desktop 本地安裝,並在編輯器中以根目錄開啟此儲存庫。外殼在啟動時把 SUPASTACK_APP_URL 作為終端設定讀取——而不是從已儲存的 .env 檔案中讀取。

簡而言之:工作區是一個團隊的單獨使用者、資料和設定。伺服器是可信後端;讓提供商金鑰遠離瀏覽器和電話程式碼。遷移是建立或更新表的版本化資料庫更改。人工智慧模型是回答的引擎;型號目錄是伺服器上可用型號 ID 和價格的列表。提供商是一種外部服務,例如人工智慧、電子郵件或計費服務。權利是允許工作區使用某項功能的授權。 Webhook 是一個服務傳送到另一個服務的 URL 的訊息。

1. 開啟 .agents/skills/add-a-desktop-capability/SKILL.md——或讓您的編碼代理照它執行——並做一處小的原生改動,例如新增一個 View 選單項或換一個召喚快捷鍵。

2. 執行 cargo check,啟動外殼,並在開啟的視窗中實際驗證該改動。

3. 在您計劃釋出的每個作業系統上重複驗證——托盤、快捷鍵和選單行為因平臺而異。

對自定義程式碼,寫明行為名稱、它影響的選單或快捷鍵,以及在每個作業系統上應發生的效果。把任務交給您的編碼代理,並要求它先讀 AGENTS.md、.ai/PROJECT_CONTEXT.md 以及將觸碰檔案的 .ai/ 映象檔案;在編輯前列出檔案和檢查項;並向您展示 diff。使用示例值;切勿貼上真實金鑰。

先決定原生還是產品

使用者視為產品介面的一切——介面、資料、設定——屬於 web 應用,會自動出現在視窗中。只有作業系統層面的行為屬於 Rust:視窗、托盤、選單、全域性快捷鍵、開機自啟和更新檢查。

apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json

保持 webview 沙箱最小化

Webview 只能呼叫 capabilities/default.json 列出的內容。需要新外掛的改動要在 Cargo.toml 中新增 crate、在 lib.rs 中註冊,並在 capabilities 中授予最小許可權——絕不使用萬用字元。

持久化的外殼狀態——視窗位置、縮放、更新通道、視窗偏好——通過附帶的 sidecar 存放在應用資料目錄中,而不是由您手工管理的檔案。

在每個目標作業系統上驗證

執行 cargo test,然後在 Windows、macOS 和 Linux 上開啟真實視窗:視窗狀態恢復、關閉到托盤、單例項聚焦,以及在您的改動生效時的召喚快捷鍵。一個作業系統通過並不能證明另外兩個也沒問題。