快速入門:與檔案選擇器協定整合(Windows 執行階段應用程式)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
透過將您的應用程式與檔案開啟選擇器合約、檔案儲存選擇器協定或快取檔案更新程式協定整合,即可使用檔案選擇案器來存取應用程式的內容、儲存位置或檔案更新。
先決條件
- JavaScript:如何啟用應用程式
- C#/C++/VB:如何啟用應用程式
- 建議:Windows 應用程式協定
決定您的應用程式將要從檔案選擇器視窗提供哪些服務
您的應用程式與關聯的應用程式協定整合後,就可以對其他應用程式提供下列服務。如果要參與協定,您必須在您應用程式資訊清單中宣告協定、回應對應的啟動事件,並建立專門的應用程式檢視。
提供檔案存取
如果您的應用程式對於某些檔案有獨特和/或有用的檢視方式,或是如果使用者不易使用其他方式存取這些檔案,請透過檔案選擇器提供檔案。
應用程式協定:檔案開啟選擇器合約
啟動的事件資訊:fileOpenPickerActivatedEventArgs
提供儲存位置
如果您預期使用者想儲存檔案,以便之後在您的應用程式中開啟和使用這些檔案,請透過檔案選擇器提供儲存位置。
應用程式協定:檔案儲存選擇器協定
啟動的事件資訊:fileSavePickerActivatedEventArgs
為檔案提供即時更新
如果您預期使用者會將您的應用程式當做作中央存放庫 (存放您的應用程式提供的檔案,或使用您的應用程式做為儲存位置而儲存的檔案),請透過檔案選擇器追蹤與更新檔案。
應用程式協定:快取檔案更新程式協定
啟動的事件資訊:cachedFileUpdaterActivatedEventArgs
請參閱使用檔案選擇器存取檔案,深入了解您應用程式可以透過檔案選擇器提供的服務。
在應用程式資訊清單中宣告協定
在 Microsoft Visual Studio 中開啟您的專案,然後按照下列步驟,將應用程式協定新增到您的資訊清單:
顯示專案的 [加入新項目] 視窗,從中央窗格中選取協定,然後按一下 [加入]**** 按鈕,新增應用程式協定。
您可以使用數種方式來顯示 Visual Studio 中的 [加入新項目] 視窗:
- 依序選取 [專案]**** > [加入新項目...] 功能表選項
- 從專案的內容功能表上依序選取 [加入]**** > [新增項目...] 功能表選項
- 使用 Crtl+Shift+A 鍵盤快速鍵
秘訣 當您加入這些協定時,Visual Studio 會自動更新您的 "package.appmanifest" 資訊清單檔案,並將檔案加入專案,您將使用這些檔案來定義檢視的配置和行為,當呼叫您的應用程式服務時,這個檢視就會裝載到檔案選擇器視窗中。
如果協定的預設設定不適用於您的應用程式,請在 Visual Studio 中自訂協定的設定。
開啟 "package.appmanifest"。
開啟 [宣告] 索引標籤。
從 [支援的宣告]**** 清單中選取您的協定名稱。
新增特定檔案類型的支援。
在 [支援的檔案類型] 方塊中,取消核取 [SupportsAnyFileType] **** 核取方塊。
按照下列步驟,為想要支援的每個檔案類型加入新的 FileType 欄位:
- 按一下 [加入新的] 按鈕。
- 將想要支援的檔案類型的副檔名輸入 FileType 欄位,就像這樣:
*.ext
秘訣 僅加入與您應用程式、使用者及協定直接相關的檔案類型。以這種方式限制檔案類型,可以讓您的檔案選擇器檢視簡潔、易於使用。
按照之前的步驟執行,然後針對想要移除的檔案類型按一下 [移除] 按鈕,也可以移除對該檔案類型的支援。[移除]**** 按鈕就在 FileType 欄位的正上方。
您的資訊清單已經根據新加入的協定標記進行更新。代表您加入之協定的元素,已插入到資訊清單 XML 標記中,當作 Extensions 元素的子項。例如,支援所有檔案類型的「檔案開啟選擇器」協定的標記看起來就像這樣:
<Extension Category="windows.filePicker" StartPage="filePicker.html">
<FileOpenPicker>
<SupportedFileTypes SupportsAnyFileType="true" />
</FileOpenPicker>
</Extension>
當檔案選擇器啟動您的應用程式時會產生回應
將程式碼新增到啟動的事件處理常式,測試傳遞到處理常式的物件,是與在資訊清單中宣告的協定相關聯,接著顯示應用程式的檔案選擇器檢視。
每個協定都與提供啟動事件資訊的物件相關聯,當從檔案選擇器呼叫您應用程式提供的其中一項服務時,會引發啟動事件。
「檔案開啟選擇器」協定 - fileOpenPickerActivatedEventArgs
「檔案儲存選擇器」協定 - fileSavePickerActivatedEventArgs
「快取檔案更新程式」協定 - cachedFileUpdaterActivatedEventArgs
建立要裝載在檔案選擇器上的應用程式專用檢視
檔案選擇器的指導方針和檢查清單中的指導原則,應可協助您設計將裝載在檔案選擇器中的應用程式檢視。
最後,您的檢視應包含:
適當地自訂檔案選擇器上下黑邊的程式碼
定義檔案選擇器框架區域 (顯示檔案的位置) 之配置的標記和樣式
將您的資料來源繫結到標記,使檔案顯示在框架區域的程式碼
使用另一個應用程式呼叫的檔案選擇器測試您應用程式提供的服務
如果要從檔案選擇器測試您應用程式提供的服務,您必須觸發與應用程式提供的服務相對應的啟動事件。直接執行應用程式是不能觸發這個事件的。
而是,按照下列步驟,為每個協定觸發相對應的啟動事件。
如果要測試您的應用程式是否參與「檔案開啟選擇器」協定:
啟動不是您自己的應用程式。
使用其他應用程式的 UI,呼叫檔案選擇器視窗來存取檔案。
在檔案選擇器的位置清單中選取您的應用程式,以檢視檔案選擇器中裝載之您的應用程式。
如果要測試您的應用程式是否參與「檔案儲存選擇器」協定:
啟動不是您自己的應用程式。
使用其他應用程式的 UI,呼叫檔案選擇器視窗來儲存檔案。
在檔案選擇器的位置清單中選取您的應用程式,以檢視檔案選擇器中裝載之您的應用程式。
如果要測試您的應用程式是否參與「快取檔案更新程式」協定:
啟動不是您自己的應用程式。
使用其他應用程式的 UI,呼叫檔案選擇器視窗,存取或儲存已標示為要更新的檔案。
摘要
您的應用程式參與應用程式協定後,就可以對其他應用程式提供服務。如果要參與協定,您必須在您應用程式資訊清單中宣告協定、回應對應的啟動事件,並建立專門的應用程式檢視。
相關主題
參考
Windows.Storage.Pickers.Provider namespace
Windows.ApplicationModel.Activation.fileOpenPickerActivatedEventArgs class
Windows.ApplicationModel.Activation.fileSavePickerActivatedEventArgs class
Windows.ApplicationModel.Activation.cachedFileUpdaterActivatedEventArgs class
使用檔案選擇器