搜尋合約讓應用整合至系統 Charms 列搜尋面板,使用者可在任何情境下搜尋應用內容。本文解析搜尋面板結構、啟動流程與核心事件機制。
搜尋合約概述
- 系統級搜尋入口,無需應用內建搜尋框
- 支援應用內搜尋、跨應用搜尋、本地檔案搜尋
- 提供搜尋建議、搜尋推薦、搜尋歷史等智慧輔助

搜尋面板結構剖析

- 搜尋範圍:當前選定的應用程式
- 搜尋建議:應用提供的即時查詢建議(最多 5 條)
- 已安裝應用列表:支援搜尋合約的其他應用
- 搜尋推薦:帶縮圖、標題的精準結果,點擊直接跳轉詳細頁

搜尋合約實現原理

1. 清單檔宣告搜尋功能
在 Package.appxmanifest「宣告」索引標籤添加「搜尋」宣告,並設定檔案存取權限。

2. 三大核心事件流程
搜尋啟動事件
使用者選擇應用作為搜尋範圍 → 系統啟動應用 → 觸發 OnSearchActivated

- 無查詢文字:載入先前應用狀態
- 有查詢文字:執行搜尋並顯示結果頁
查詢提交事件
使用者按下搜尋鍵或選擇建議 → 觸發 QuerySubmitted

- 查詢文字未變:顯示快取結果
- 查詢文字變更:重新搜尋並更新結果
搜尋建議請求事件
使用者輸入文字 → 系統顯示歷史記錄 → 觸發 SuggestionsRequested

- 同步處理:直接添加建議至集合
- 非同步處理:請求延遲,完成後添加建議
最佳實踐原則
- 不在應用內放置搜尋控件,統一使用系統 Charms
- 不在應用列放置搜尋 UI
- 始終提供搜尋建議,包含使用者當前輸入文字
- 建議應反映應用可提供的結果類型
- 選擇建議後立即跳轉結果頁
- 提供精準匹配時使用搜尋推薦
理解搜尋合約架構後,下一章將示範完整的搜尋合約實作程式碼。