本節書摘來自異步社群《windows 8 權威指南》一書中的第2章,第2.1節,作者:胡耀文 , 尹成 , 李貝貝 , 盧磊 , 曹珍著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
windows 8 權威指南
我們使用metro應用,目的就是為了擁有快速流暢的動态metro體驗。微軟為使用者提供了針對不同的應用程式設定不一樣的啟動模式。在接下來的部分将介紹微軟的四種啟動模式,使用者可以基于對應用程式的不同需求将程式設定成不一樣的啟動模式,以達到更加流暢快速的體驗。
模式一 預設的啟動模式:适用于不需要額外加載和可立即使用的應用程式。
對于許多應用程式而言,“預設啟動”是最優流程。在這一流程中,系統将處理各個應用程式初始螢幕的顯示與消除。在系統完成激活,并顯示出視窗之前,使用者初始螢幕将一直顯示,并向應用程式的登入頁面觸發具有動畫效果的交叉淡入淡出。如果使用者的登入頁面是靜态的,而且不需要進行額外的加載操作,那麼請使用“預設啟動”。如果内容可立即使用,那麼就沒有必要人為地延遲使用者使用應用程式。
以下示例顯示了從release preview中使用internet explorer 10(以下簡稱ie10)進行預設啟動的情形。當啟動應用程式時,使用者将立即見到初始螢幕,如圖2.1所示。初始螢幕将在應用程式激活之前一直顯示,此後,初始螢幕将淡出,并轉而顯示登入頁面。在這一情形中,登入頁面将顯示使用者所通路的最後頁面,由于該頁面在上一次會話過程中已經保留,是以其随時可用。圖2.1所示為啟動過程。
顯示完成後會自動跳轉到程式的登入界面,如圖2.2所示。
如果您不需要進行額外的操作即可實施預設的啟動橫式。首先在應用程式的清單中選擇620×300初始螢幕圖像,然後再使用靜态内容設計登入頁面。激活完成後,初始螢幕将淡出,轉而顯示使用者的登入頁面,随後您就可以使用該應用程式了。
模式二 架構的應用程式啟動:适用于需在啟動時增量填充登入頁面的應用程式。
對于大多數應用程式而言,預設啟動将十分有效。在初始螢幕消除後,應用程式将開始運作,并準備與使用者進行互動。然而有些應用程式在此時并未完全啟動,這些應用程式需要啟動後再動态地加載内容。對于這類應用程式,“架構應用程式啟動”模式将是一個不錯的方式,其将盡可能迅速地讓使用者使用應用程式,并在此時向使用者提供内容豐富的加載資訊。在這一模式中,初始螢幕将消除,并轉變成一個“架構”登入頁(使用者看到的登入頁将不包含任何内容),而應用程式将在此時檢索内容。通過頁面添加的進度欄,使用者可知該應用程式仍在加載中。
以下示例顯示了從release preview中使用音樂應用程式進行架構啟動的情形。此處将顯示架構登入頁面,而此時應用程式正在檢索最新音樂内容。以下所示為其流程。
第一步同樣是單擊應用磁貼,首先顯示初始螢幕,如圖2.3所示。
稍後會顯示架構的登入界面,這時可以看到視圖頂部的進度欄。在登入後的界面中即可顯示出應用程式登入完成的界面,其中顯示了使用者添加到該應用中的設定資訊以及其他資訊,如圖 2.4所示。
模式三 擴充的應用程式啟動:适用于需在呈現ui前執行長時間加載操作的應用程式,這可能包含網絡調用或大量檔案i/o。
對于在啟動後需要執行額外加載操作的應用程式而言,“架構應用程式啟動”将是一個不錯的選擇。但是,這一選擇也有一個弊端:由于系統立即将使用者帶入“架構”頁面,是以集體加載流程可能會讓使用者産生不連貫的感覺。從初始螢幕到架構登入頁面的切換可能會給使用者留下存在兩個獨立的加載操作的印象。如果使用者不希望使用這一模式,那麼“擴充的應用程式啟動”模式将是一個不錯的選擇。
該流程使用“擴充的”初始螢幕的概念為使用者打造了一個無縫的加載體驗。當正常初始螢幕消除後,應用程式将顯示一個擴充的初始螢幕而不是登入頁面。擴充的初始螢幕将完全由應用程式所擁有,而且使用初始螢幕api進行了格式化。api将提供定位資訊,確定擴充的初始螢幕的外觀從視覺效果上與初始螢幕完全一緻(進度環和加載詳情除外),這能集合看似獨立的加載操作。擴充的初始螢幕處于運作狀态時,應用程式可繼續執行登入頁面所需的操作。待加載完成後,即可從擴充的初始螢幕切換至登入頁面。
如果初始化的時間較長(如網絡連接配接性的不可預測),那麼擴充的啟動流程将十分有效。如果您需要在啟動過程中進行任何“難度較大的操作”,那麼擴充的初始螢幕将是理想的選擇。此外,如果您希望確定在切換至登入頁面之前,登入頁面已完成更新(如果您選擇不顯示緩存的資料),那麼這也将是一個不錯的選擇。
以下示例顯示了從windows 8 release preview中使用天氣應用程式進行擴充的啟動流程的情形。天氣應用程式是可實施擴充的啟動模式的衆多應用程式中的經典示例,這是因為應用程式可在其從網絡中請求最新天氣資料時向使用者顯示擴充的初始螢幕(向使用者顯示緩存的天氣資料意義不大)。以下所列的是其流程:
同樣第一步是單擊應用磁貼,初始化界面如圖2.5所示。
初始界面之後會進入顯示擴充的初始螢幕(包含進度環)。這時程式主要的作用是用于重新整理初始化資料,如圖2.6所示。
圖2.6 初始化緩沖界面
使用者可以看到在app preview字樣下面有重新整理的圖示在轉動。完成之後即進入了顯示應用程式登陸頁面,如圖2.7所示。
模式四 延遲的應用程式啟動:适用于需在啟動時完成基本異步任務(如查詢應用程式設定以進行首次運作檢查)的應用程式。
最後一種啟動模式是“延遲的應用程式啟動”。延遲啟動與擴充啟動模式類似,可在初始螢幕切換之前啟用對登入頁面的準備操作。不同之處是,延遲的應用程式不是顯示“擴充的”初始螢幕,而是延遲正常初始螢幕的消除,直到完成異步任務。由于應用程式完成該延遲的時間有限,是以使用者應謹慎使用延遲模式,而且應在系統顯示應用程式之前完成諸如讀取應用程式設定等簡單異步操作。此外,如果使用者無法及時恰當地處理錯誤或異常,那麼啟動有可能被終止。相應地,如果使用者的應用程式需要進行網絡調用或處理大量資料,則應使用架構的或擴充的應用程式啟動模式。
以下示例顯示了從windows 8 release preview中使用照片應用程式進行延遲啟動的情形。當使用者從桌面打開.jpg檔案時,照片應用程式将作為此類檔案的預設處理程式而被啟動。照片應用程式将使用延遲來在初始螢幕消除前加載圖像縮略圖。由于縮略圖檢索操作可相對迅速地完成,是以延遲的使用可被接受。随後,在使用者進入應用程式後,系統可異步擷取較高分辨率圖像來更換縮略圖。這一流程可確定縮略圖在使用者切換至應用程式之前顯示于螢幕中。以下所示為其流程。
第一步是采用輕按兩下.jpg圖檔的方式打開預設的照片metro應用。此時同樣打開了如圖2.8所示的初始化界面。
此時并沒有完全将圖檔激活,而是采用延遲激活,同時檢索縮略圖。此時的界面不會有變化,待檢索結束之後則在照片程式中顯示圖檔,如圖2.9所示。
前面簡單地介紹了四種模式下的metro風格應用程式。當然,使用者并不需要了解更多的細節問題,隻是在使用的時候,知道metro中不同的模式對應不同的啟動方式就可以了。