Search Contract概述
使用過Windows 8操作系統的開發者都知道什麼是Charms(超級按鈕)。其中在Charms中包含了一個Search,微軟稱之為Search Contact,我們可以在應用中調用Search Contract相應的API來實現應用搜索功能。
使用Search Contract可以從系統的任何位置進入到我們的應用進行搜索,意思就是不管我們在操作系統上面做任何事情都可以隨時使用Search Contract對第三方應用進行應用內搜索。
Search Contract可以在任意的場景中調出,當然也可以依賴與某一場景(例如:聯系人頁面只是搜索聯系人,新聞頁面只是搜索新聞)。我們只需要輕輕一劃就可以啟用。
Search Contract面板結構剖析
Search Contract面板可簡單剖析如下:
1) 搜索的范圍在於我們所選擇的應用程序;
2) 搜索建議由我們所選擇的應用程序提供,一般都是自動根據搜索條件在所選應用內搜索出來的結果,注意:搜索建議最多顯示5條;
3) 列出已安裝的實現了Search Contract的Windows 8風格應用;
4) Search Contract面板顯示所選應用的搜索推薦,一般最好提供包含縮略圖和標題,提供精確的匹配信息,用戶點擊某一條搜索推薦後直接跳轉到相應的詳細信息頁面。
Search Contract實現原理
首先我們來整體看一下搜索設置和相應的事件:
1.我們想要在自己的應用中使用Search Contract,首先需要在應用程序的清單文件(Package.appxmanifest)中注冊應用的搜索功能以及文件訪問能力。
2.搜索面板中提供搜索歷史(系統自動提供)默認是開啟狀態,應用本地內容的搜索建議以及設置占位符文本。
3.搜索面板中涉及到三個重要事件:搜索激活事件;查詢提交事件;搜索建議請求事件。
搜索激活事件
1.用戶選擇一個搜索位置;
2.搜索面板中激活相應的應用進行搜索;
3.觸發應用程序中搜索激活事件,判斷是否包含查詢文本,若未包含查詢文本加載之前的應用狀態,若包含查詢文本進行搜索並顯示搜索結果視圖;
查詢提交事件
1.用戶輸入查詢內容點擊搜索按鈕,或者用戶選擇一個查詢建議;
2.搜索面板中激活相應的應用進行搜索;
3. 觸發應用程序中搜索激活事件後,觸發查詢提交的事件,需要判斷查詢文本是否改變了,若查詢文本未改變顯示之前搜索結果視圖,若查詢文本發生改變重新進行查詢顯示搜索結果視圖;
搜索建議請求事件
1. 用戶在搜索框中輸入查詢文本;
2. 搜索面板中自動顯示匹配的搜索歷史記錄,同時向相應的應用發起請求建議;
3. 觸發查詢提交事件,是否進行異步的處理,若未進行異步處理將建議添加到搜索建議集合中,在搜索面板中顯示來自應用的建議,若進行異步處理,首先請求延遲將建議添加到搜索建議集合中完成延遲處理,在搜索面板中顯示來自應用的建議;
Search Contract最佳實踐
1.不要在應用中添加搜索相關的控件;
2.不要在App Bar中放置搜索相關的UI;
3.始終提供搜索建議;
4.搜索建議應包含用戶當前的搜索文本;
5.搜索建議應體現應用能夠提供的結果;
6.用戶選擇搜索建議後,應立即跳轉到相應的搜索結果頁面;
7.如果想要給用戶提供精准匹配,請提供搜索結果的建議;
本文出自 “王祖康” 博客,請務必保留此出處http://wzk89.blog.51cto.com/1660752/1007114