如何處理 URI 啟用 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
應用程式可以登錄成為特定統一資源識別項 (URI) 配置名稱的預設處理常式。 傳統型應用程式與 Windows 執行階段應用程式都可以登錄成為預設的 URI 配置名稱處理常式。 如果使用者選擇您的應用程式做為 URI 配置名稱的預設處理常式,則每次啟動該類型的 URI 時就會啟用您的應用程式。
建議您只有當您希望處理某個 URI 配置類型的所有 URI 啟動時,才登錄該 URI 配置名稱。 如果您選擇登錄某個 URI 配置名稱,則在針對該 URI 配置名稱啟用您的 app 時,您必須為使用者提供預期的功能。 例如,登錄 mailto: URI 配置名稱的 app 必須開啟新的電子郵件訊息,以便讓使用者撰寫新的電子郵件。 如需 URI 關聯的詳細資訊,請參閱檔案類型與 URI 的指導方針和檢查清單。
這些步驟示範如何登錄自訂 URI 配置名稱 alsdk://,以及當使用者啟動 alsdk:// URI 時如何啟用您的應用程式。
注意
在 Windows Phone 市集應用程式中,會將特定的 URI 和副檔名保留給內建應用程式和作業系統使用。如果嘗試以保留的 URI 或副檔名登錄應用程式,則會遭到忽略。如需詳細資訊,請參閱本頁上的清單。
指示
步驟 1: 在套件資訊清單中指定擴充點
應用程式僅會接受套件資訊清單中列示之 URI 配置名稱的啟用事件。以下是如何指示應用程式處理alsdk
URI 配置名稱的方法。
在 [方案總管] 中按兩下 package.appxmanifest 以開啟它。
以下簡短說明您在套件資訊清單中可能要填寫的每個欄位:
欄位 說明 名稱
為共用相同顯示名稱、標誌、資訊提示以及編輯旗標的一組檔案類型選擇一個名稱。選擇可以在所有應用程式更新都維持一致的群組名稱。
注意 [名稱] 必須是小寫字母。保留和禁止的檔案類型
以下依字母排列的 URI 配置清單,是遭保留或禁止而不能為應用程式登錄的 URI 配置:
注意
針對 Windows 市集應用程式
application.manifest、 application.reference、 batfile、 blob、 cerfile、 chm.file、 cmdfile、 comfile、 cplfile、 dllfile、 drvfile、 exefile、 explorer.assocactionid.burnselection、 explorer.assocactionid.closesession、 explorer.assocactionid.erasedisc、 explorer.assocactionid.zipselection、explorer.assocprotocol.search-ms、explorer.burnselection、 explorer.closesession、explorer.erasedisc、explorer.zipselection、 file、 fonfile、 hlpfile、 htafile、 inffile 、 insfile、 internetshortcut、 jsefile、 lnkfile、 microsoft.powershellscript.1、 ms-accountpictureprovider、 ms-appdata、 ms-appx、 ms-autoplay、 msi.package、 msi.patch、 ms-windows-store、 ocxfile、 piffile、 regfile、 scrfile、 scriptletfile、 shbfile、 shcmdfile、 shsfile、smb、 sysfile、 ttffile、unknown、 usertileprovider、vbefile、vbsfile、 windows.gadget、wsffile、 wsfile、wshfile
注意
針對 Windows Phone 市集應用程式
Windows Phone 將下列 URI 配置保留給內建應用程式。
bing、callto、dtmf、http、https、mailto、maps、ms-excel、ms-powerpoint、ms-settings-airplanemode、ms-settings-bluetooth、ms-settings-cellular、ms-settings-emailandaccounts、ms-settings-location、ms-settings-lock、ms-settings-wifi、ms-word、office、onenote、tel、wallet、xbls、zune
Windows Phone 將下列 URI 配置保留給作業系統。
Explorer.AssocActionId.BurnSelection、Explorer.AssocActionId.CloseSession、Explorer.AssocActionId.EraseDisc、Explorer.AssocActionId.ZipSelection、Explorer.AssocProtocol.search-ms、Explorer.BurnSelection、Explorer.CloseSession、Explorer.EraseDisc、Explorer.ZipSelection、File、Iehistory、Ierss、Javascript、Jscript、LDAP、Res、rlogin、StickyNotes、telnet、tn3270、Vbscript、windowsmediacenterapp、windowsmediacenterssl、windowsmediacenterweb、WMP11.AssocProtocol.MMS
顯示名稱
在 [控制台] 的 設定預設程式中指定用來識別 URI 配置名稱的顯示名稱。
標誌
在 [控制台] 的 設定預設程式中指定用來識別 URI 配置名稱的標誌。如果沒有指定標誌,則會使用應用程式的小標誌。
所需的檢視 (僅限 Windows)
指定 Desired View 欄位,指示當針對 URI 配置名稱啟動 app 時,app 視窗所需的空間大小。Desired View 的可能值為 Default、UseLess、UseHalf、UseMore 或 UseMinimum。
注意 Windows 在判斷目標 app 的最終視窗大小時會考量多種不同因素,例如來源 app 的喜好設定、螢幕上的 app 數目以及螢幕方向等。設定 [所需的檢視] 並無法保證目標應用程式的特定視窗行為。Windows 8.1: Windows 8.1 和 Windows Server 2012 R2 之前的版本不支援 Desired View。
Windows Phone: Windows Phone 不支援 Desired View。
選取 [宣告] 索引標籤。
從下拉式清單中選取 [通訊協定]****,然後按一下 [加入]。
在 [名稱]**** 中輸入
alsdk
。在 [標誌] 中輸入 “images\Icon.png”。
按 Ctrl+S 將變更儲存至 package.appxmanifest。
這樣會將和這個一樣的 Extension 元素新增至套件資訊清單。windows.protocol 類別指示應用程式處理 alsdk
URI 配置名稱。
<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.protocol">
<Protocol Name="alsdk"/>
<Logo>images\logo.png</Logo>
<DisplayName>SDK Sample URI Scheme</DisplayName>
</Extension>
</Extensions>
</Application>
</Applications>
</Package>
步驟 2: 新增適當圖示
成為 URI 配置名稱預設程式的應用程式,會在系統的各個地方顯示它們的圖示,例如 [預設程式] 控制台。
建議您使用適當圖示來代表專案,這樣能讓標誌在所有位置上看起來都很美觀。如果是 Windows 市集應用程式,請在影像資料夾中包含 16/32/48/256 像素版本的小標誌和圖示大小。如果是 Windows Phone 市集應用程式,請改為包含 63/129/336 像素版本。將應用程式磚標誌的外觀與色板保持一致,而且讓標誌延伸到邊緣而不填補它。在白色背景上測試您的圖示。 如需範例圖示,請參閱關聯啟動範例 (Windows)。
步驟 3: 登錄啟用的事件
登錄 activated 事件來處理 URI 啟用。
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
步驟 4: 處理啟用的事件
步驟 1 中登錄的 activated 事件處理常式會接收所有啟用事件。kind 屬性指示啟用事件的類型。這個範例是設定處理 protocol 啟用事件。
function onActivatedHandler(eventArgs) {
if (eventArgs.detail.kind == Windows.ApplicationModel.Activation.ActivationKind.protocol)
{
// TODO: Handle URI activation.
// The received URI is eventArgs.detail.uri.rawUri
}
}
備註
任何應用程式或網站都可以使用您的 URI 配置名稱,包含惡意應用程式或網站。因此您透過 URI 取得的任何資料都可能來自不受信任的來源。建議您絕對不要採用透過 URI 接收的參數來執行永久動作。例如,URI 參數可以用來啟動 app 進入使用者的帳戶頁面,但是建議您絕對不要使用它們直接修改使用者的帳戶。
注意 如果您要為 app 建立新的 URI 配置名稱,請務必遵循 RFC 4395 中的指導方針。這樣可確保您的名稱符合 URI 配置的標準。
注意
當透過通訊協定協定啟動時,Windows Phone 市集應用程式應該確定 [返回] 按鈕可以將使用者帶回到啟動應用程式的畫面,而不是應用程式先前的內容。
建議應用程式針對每個開啟新 URI 目標的啟用事件建立新的 XAML 框架。透過這種方式,新 XAML 框架的瀏覽上一頁堆疊將不會包含應用程式在暫停時任何先前可能存在於目前視窗上的內容。
決定針對啟動和通訊協定協定使用單一 XAML 框架的應用程式,應該先清除框架瀏覽日誌上的頁面,然後再瀏覽到新頁面。 當透過通訊協定協定啟動時,應用程式應該考慮包含能讓使用者回到應用程式頂端的 UI。
完整範例
請參閱關聯啟動範例 (Windows)。
相關主題
概念
Windows 8 Release Preview 和 Windows Server 2012 RC 相容性手冊 (使用者模型資訊)
工作
指導方針
參考