如何從快顯通知處理啟用 (HTML)

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

注意  不是使用 JavaScript?請參閱如何從快顯通知處理啟用 (XAML)

 

這個主題示範的是使用者按一下您應用程式傳送的快顯通知時,您應該採取的動作。您的應用程式應該以快顯通知特定的 UI 顯示方式來回應。應用程式通常會在與該快顯通知內容相關的內容或檢視中啟動。 將快顯通知承載所包含的啟用字串,傳遞到您應用程式做為啟用事件的引數,您就可以完成這項工作。下方顯示基本的資料流程:

  1. 應用程式或 Web 服務建立並傳送快顯通知承載,包括啟動字串
  2. 引發快顯通知並/或將通知傳送到重要訊息中心
  3. 使用者選取快顯通知 (按一下或觸碰)
  4. 觸發啟用的事件
  5. 應用程式已啟用的事件處理常式讀取啟動字串
  6. 使用啟動字串中提供的參數啟動應用程式

注意  透過 Microsoft Visual Studio 測試快顯通知程式碼功能時,您必須在 Windows x86、x64 或 Windows 執行階段電腦上,使用本機電腦或遠端電腦偵錯設定。您不能使用 Visual Studio 模擬器偵錯功能選項—您的程式碼將在模擬器中編譯並執行,但不會顯示快顯通知。

 

您必須知道的事

技術

  • Windows Runtime

先決條件

為了解這個主題,您將需要:

指示

步驟 1: 在快顯通知承載中包含啟用資料

您的應用程式透過快顯通知啟用時,您必須提供與該快顯通知內容相關的資訊。然後,您的應用程式會啟動至關聯的檢視,以反映該內容,而非啟動至預設的檢視。應用程式或 Web 服務建立快顯通知時,會使用 launch 屬性來指定這項啟用資訊。您可以將字串想像為類似命令列的引數。字串可以包含應用程式能夠了解的任何資訊,只要字串不會讓 XML 承載變成無效即可。請注意,快顯通知的 XML 承載總大小 (包括啟動字串) 不能超過 5 KB。

如果您未包含啟動屬性字串,您的應用程式將正常啟動,就像使用者是從 [開始] 畫面將它啟動一樣。

在此步驟中,我們假設之前建立的 XmlDocument 物件名稱為 toastXml。這個範例會建立 launch 屬性,指派其字串值,然後將它新增至快顯通知的 XML 承載中。如需建立完整快顯通知的指示,請參閱快速入門:傳送快顯通知


var launchAttribute = toastXml.createAttribute("launch");
launchAttribute.value = "{\"myContext\":\"12345\"}";
var toastNode = toastXml.selectSingleNode("/toast");
toastNode.attributes.setNamedItem(launchAttribute);

上述程式碼會根據快速入門:傳送快顯通知中定義的 visual 元素內容來產生下列 XML。


<toast launch="{&quot;myContext&quot;:&quot;12345&quot;}">
    <visual>
        <binding template="ToastImageAndText01">
            <image id="1" src="ms-appx:///images/redWide.png" alt="red graphic"/>
            <text id="1">Hello World!</text>
        </binding>
    </visual>
</toast>

步驟 2: 登錄已啟用的事件

使用者按一下您的快顯通知或透過觸控選取您的快顯通知時,就會觸發 activated 事件。您的應用程式必須透過 addEventListener 函式登錄,才能收到事件通知。

注意  如果您的快顯通知沒有包含啟動屬性字串,且選取快顯通知時已在執行應用程式,則不會觸發 activated 事件。

 

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

步驟 3: 為快顯通知的已啟用事件實作處理常式

登錄的事件處理常式會接收所有啟用事件 (無論啟用類型為何)。事件通知所包含的 kind 屬性表示啟用事件的類型。使用者按一下已在 XML 承載中指定 launch 屬性的快顯通知時,就會觸發 launch 類型的啟用事件。這與使用者點選應用程式的主要或次要磚時引發的事件相同。

您在步驟 1 透過 launch 屬性提供的啟用字串,會包含在事件通知的 arguments 屬性中。

這個範例顯示的是在步驟 2 登錄的已啟用事件處理常式的大綱。


function onActivatedHandler(args) {
    if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
        var launchString = args.detail.arguments;

        // Handle activation as required for your app, using the launch string.
    }
}

相關主題

快顯通知範例

Windows.UI.Notifications API namespace

快顯通知概觀

快顯通知的指導方針和檢查清單

快速入門:傳送快顯通知

快顯通知範本目錄

快顯通知 XML 結構描述