如何處理檔案啟用 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

應用程式可以登錄成為特定檔案類型的預設處理常式。 傳統型應用程式與 Windows 執行階段應用程式兩者都可以登錄為預設的檔案處理常式。 如果使用者選擇您的應用程式做為特定檔案類型的預設處理常式,則每次啟動該類型的檔案時就會啟用您的應用程式。

建議只有當您希望處理某個檔案類型的所有檔案啟動時,才登錄該檔案類型。 如果您的應用程式只需在內部使用檔案類型,就不需要登錄為預設處理常式。 如果您選擇登錄某個檔案類型,則在針對該檔案類型啟用您的應用程式時,您必須為使用者提供預期的功能。 例如,圖片檢視器應用程式需要登錄以顯示 .jpg 檔案。如需檔案關聯的詳細資訊,請參閱檔案類型與 URI 的指導方針和檢查清單

這些步驟示範如何登錄自訂檔案類型 .alsdk,以及當使用者啟動 .alsdk 檔案時如何啟用您的應用程式。

注意  

在 Windows Phone 市集應用程式中,會將特定的 URI 和副檔名保留給內建應用程式和作業系統使用。如果嘗試以保留的 URI 或副檔名登錄應用程式,則會遭到忽略。如需詳細資訊,請參閱本頁上的清單。

指示

步驟 1: 在套件資訊清單中指定擴充點

應用程式僅會接受套件資訊清單中列示之副檔名的啟用事件。以下是如何指示應用程式處理具有 .alsdk 副檔名的檔案。

  1. 在 [方案總管] 中按兩下 package.appxmanifest 以開啟它。

    請參閱以程式設計方式編寫識別碼,了解檔案關聯使用的識別碼詳細資料。以下簡短說明您在套件資訊清單中可能要填寫的每個欄位:

    欄位 說明

    內容類型

    為特定檔案類型指定 MIME 內容類型,例如 image/jpeg

    允許之內容類型的重要事項:  以下是您無法在套件資訊清單中輸入的 MIME 內容類型清單 (依字母順序排序),因為它們已經被保留或禁止使用:application/force-downloadapplication/octet-streamapplication/unknownapplication/x-msdownload

    名稱

    為共用相同顯示名稱、標誌、資訊提示以及編輯旗標的一組檔案類型選擇一個名稱。選擇可以在所有應用程式更新都維持一致的群組名稱。

    注意  [名稱] 必須是小寫字母。
     

    資訊提示

    指定一組檔案類型的資訊提示。 當使用者的滑鼠游標暫留在這類檔案的圖示上時,就會顯示這個工具提示文字。

    編輯旗標

    指定一組檔案類型的編輯旗標。編輯旗標控制從不受信任來源取得檔案時的存取方式。 OpenIsSafe 旗標指示可以針對任何已下載的檔案安全叫用檔案類型的 Open 動詞。 AlwaysUnsafe 旗標表示自動叫用檔案類型的 Open 動詞的選項已被停用。 使用者可以透過 [檔案類型] 對話方塊覆寫這個屬性。使用這個旗標表示不使用 OpenIsSafe。這個旗標在開啟這種不受信任的檔案類型時,會阻止安全性對話方塊中啟用 [永不問我] 核取方塊。

    顯示名稱

    指定一組檔案類型的顯示名稱。 顯示名稱用於在 [控制台] 的設定預設程式中識別檔案類型。

    標誌

    指定用於桌面以及在 [控制台] 的設定預設程式中識別檔案類型的標誌。如果沒有指定標誌,則會使用應用程式的小標誌。

    檔案類型

    指定要登錄的檔案類型,前面加上一個句號,例如 ".jpeg"。

    保留和禁止的檔案類型

    以下依字母排列的檔案類型清單,是遭保留或禁止而不能為應用程式登錄的檔案類型:

    注意  

    針對 Windows 市集應用程式

    Accountpicture-msAppxapplicationAppref-msBatCerChmCmdComCplcrtdlldrvExefongadgetHlpHtaInfInsjselnkMsiMspocxpifPs1RegScfScrShbShsSysttfurlVbeVbsWsWscWsfWsh

    注意  

    針對 Windows Phone 市集應用程式

    Windows Phone 將下列檔案類型保留給內建應用程式。

    aac、aetx、asf、bmp、cer、dotm、dotx、gif、hdp、htm、html、ico、icon、jpeg、jpg、jxr、m4a、m4rm、m4v、mov、mp3、mp4、one、onetoc2、p7b、pem、png、pptm、pptx、qcp、rtf、tif、tiff、txt、url、vcf、wav、wdp、wmv、xap、xht、xhtml、xltm、xltx、xml、xsl、zip

    Windows Phone 將下列檔案類型保留給作業系統。

    ade、adp、app、application、apprefms、asp、bas、bat、cab、chm、cmd、cnt、com、cpf、cpl、crd、crds、crt、csh、der、dll、exe、fxp、gadget、grp、hlp、hme、hpj、hta、inf、ins、isp、its、jar、js、jse、ksh、lnk、mad、maf、mag、mam、maq、mar、mas、mat、mau、mav、maw、mcf、mda、mdb、mde、mdt、mdw、mdz、msc、msh、msh1、msh1xml、msh2、msh2xml、mshxml、msi、msp、mst、msu、ops、pcd、pif、pl、plg、plsc、prf、prg、printerexport、provxml、ps1、ps1xml、ps2、ps2xml、psc1、psc2、psm1、pst、pvw、py、pyc、pyo、rb、rbw、rdp、reg、rgu、scf、scr、shb、shs、theme、tmp、tsk、url、vb、vbe、vbp、vbs、vhd、vhdx、vsmacros、vsw、webpnp、ws、wsc、wsf、wsh、xaml、xdp、xip、xnk

    所需的檢視 (僅限 Windows)

    指定 Desired View 欄位,指示針對檔案類型啟動應用程式時,應用程式視窗所需的空間大小。Desired View 的可能值為 DefaultUseLessUseHalfUseMoreUseMinimum

    注意  Windows 在判斷目標 app 的最終視窗大小時會考量多種不同因素,例如來源 app 的喜好設定、螢幕上的 app 數目以及螢幕方向等。設定 [所需的檢視] 並無法保證目標應用程式的特定視窗行為。
     

    Windows 8.1:  Windows 8.1 和 Windows Server 2012 R2 之前的版本不支援 Desired View

    Windows Phone:  Windows Phone 不支援 Desired View

     

  2. 選取 [宣告] 索引標籤。

  3. 從下拉式清單中選取 [檔案類型關聯]****,然後按一下 [加入]。

  4. 在 [名稱]**** 中輸入 alsdk

  5. 在 [檔案類型] 中輸入 .alsdk

  6. 在 [標誌]**** 中輸入 “images\Icon.png”。

  7. 按 Ctrl+S 將變更儲存至 package.appxmanifest。

這樣會將和這個一樣的 Extension 元素新增至套件資訊清單。windows.fileTypeAssociation 類別指示應用程式處理具有 .alsdk 副檔名的檔案。

<Package xmlns="https://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="https://schemas.microsoft.com/appx/2013/manifest">
   <Applications>
      <Application Id="AutoLaunch.App">
         <Extensions>
            <Extension Category="windows.fileTypeAssociation">
                <FileTypeAssociation Name="alsdk">
                  <DisplayName>SDK Sample File Type</DisplayName>
                  <Logo>images\logo.png</Logo>
                  <InfoTip>SDK Sample tip </InfoTip>
                  <EditFlags OpenIsSafe="true" />
                  <SupportedFileTypes>
                     <FileType ContentType="image/jpeg">.alsdk</FileType>
                  </SupportedFileTypes>
               </FileTypeAssociation>
            </Extension>
         </Extensions>
      </Application>
   </Applications>
</Package>

步驟 2: 新增適當圖示

成為檔案類型預設程式的應用程式,會在系統的各個地方顯示它們的圖示。例如,這些圖示會顯示在:

  • Windows 檔案總管清單檢視、操作功能表及功能區
  • 預設程式控制台
  • 檔案選擇器
  • [開始] 畫面上的搜尋結果

建議您使用適當圖示來代表專案,這樣能讓標誌在所有位置上看起來都很美觀。如果是 Windows 市集應用程式,請在影像資料夾中包含 16/32/48/256 像素版本的小標誌和圖示大小。如果是 Windows Phone 市集應用程式,請改為包含 63/129/336 像素版本。將應用程式磚標誌的外觀與色板保持一致,而且讓標誌延伸到邊緣而不填補它。在白色背景上測試您的圖示。 如需範例圖示,請參閱關聯啟動範例 (Windows)

[方案總管] 包含影像資料夾中檔案的檢視;其中 ‘Icon.targetsize’ 與 ‘smallTile-sdk’ 都有 16、32、48 以及 256 像素版本。

步驟 3: 登錄啟用的事件

登錄 activated 事件來處理檔案啟用。

WinJS.Application.addEventListener("activated", onActivatedHandler, false);

步驟 4: 處理啟用的事件

步驟 1 中登錄的 activated 事件處理常式會接收所有啟用事件。kind 屬性指示啟用事件的類型。這個範例是設定處理 file 啟用事件。

function onActivatedHandler(eventArgs) {
   if (eventArgs.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.file) 
   {
       // TODO: Handle file activation.

       // The number of files received is eventArgs.detail.files.size
       // The first file is eventArgs.detail.files[0].name
   }
}

注意  

當透過檔案協定啟動時,Windows Phone 市集應用程式應該確定 [返回] 按鈕會將使用者帶回到啟動應用程式的畫面,而不是應用程式先前的內容。

建議應用程式針對每個開啟新頁面的啟用事件建立新的 XAML 框架。透過這種方式,新 XAML 框架的瀏覽上一頁堆疊將不會包含應用程式在暫停時任何先前可能存在於目前視窗上的內容。 決定針對啟動和檔案協定使用單一 XAML 框架的應用程式,應該先清除框架瀏覽日誌上的頁面,然後再瀏覽到新頁面。

當透過檔案啟用啟動時,應用程式應該考慮包含能讓使用者回到應用程式頁面頂端的 UI。

備註

您接收的檔案可能來自不受信任的來源。建議您先驗證檔案內容,然後才在上面執行動作。如需輸入驗證的詳細資訊,請參閱撰寫安全程式碼

完整範例

請參閱關聯啟動範例 (Windows)

相關主題

概念

預設程式

檔案類型與通訊協定關聯模型

工作

如何啟動檔案的預設應用程式

如何處理 URI 啟用

指導方針

檔案類型與 URI 的指導方針和檢查清單

參考

Windows.Storage.StorageFile

Windows.UI.WebUI.WebUIFileActivatedEventArgs

WinJS.Application.onactivated