如何撰寫原始推播通知的背景工作 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
本主題說明 如何撰寫背景工作,以便在 Windows 執行階段應用程式的鎖定畫面接收使用原始推播通知的背景網路通知。本主題將引導您在 Windows 8.1 為 Windows 執行階段應用程式撰寫原始推播通知功能的背景工作。
您必須知道的事
技術
Windows.Networking.PushNotifications
使用原始推播通知啟用背景網路通訊。
先決條件
下列資訊適用於依賴使用原始推播通知維持網路連線的任何已連線或網路感知 Windows 執行階段應用程式。本主題適用於在 Windows 8.1、Windows Phone 8.1 和 Windows Server 2012 上使用 JavaScript 撰寫的應用程式。
JavaScript 應用程式、以 C++/XAML 撰寫的應用程式,以及使用 C#、VB.NET 或 Managed C++ 之 .NET Framework 4.5 的應用程式,可支援使用原始推播通知的背景網路連線。 如需適用於 JavaScript 應用程式的背景網路工作詳細資訊,請參閱使用背景工作支援應用程式。
指示
撰寫您的背景工作
讓應用程式維持可以連線的下個重要步驟是提供在原始推播通知發生時執行的應用程式程式碼。例如,如果電子郵件應用程式使用傳入原始推播通知在新郵件到達伺服器時發出訊號,該應用程式必須執行程式碼以處理原始推播通知中的資料。這個資料可能包含收到的新電子郵件清單,以引發對使用者發出通知。應用程式也可能排程連線到電子郵件伺服器,並在下次應用程式不再擱置時從伺服器下載新的電子郵件。這項處理會在背景工作完成。
每個背景工作都是由應用程式登錄原始推播通知時所執行的函式實作。這是在應用程式資訊清單中指定為包含單一函式的特定 JavaScript 原始檔。
以下範例說明原始推播通知觸發背景工作時所執行的函式。
(function () {
// Get the background task details
var backgroundTask = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
var settings = Windows.Storage.ApplicationData.current.localSettings;
var taskName = backgroundTask.task.name;
console.log("Background task \"" + taskName + "\" starting...");
// Store the content received from the notification so it can be retrieved
// from the UI.
var notificationDetails = backgroundTask.triggerDetails;
settings.values[taskName] = notificationDetails.content;
console.log("Background \"" + taskName + "\" completed!");
// Close the instance running the task
close();
})();
注意 您無法在背景工作參照應用程式使用者介面 (UI) 的元素,因為應用程式的 UI 元素並未執行。在背景工作執行程式碼時,可以從原始推播通知接收資料、剖析和處理資料以及向使用者引發通知。
背景工作的存留期是由實作背景工作的函式所控制。當應用程式結束函式,應用程式就會暫停。
觸發應用程式背景工作時,作業系統會確保適當的同步化可將原始推播通知資料傳遞到應用程式或傳回錯誤 (例如,中止連線)。同樣地,在背景工作結束時,應用程式必須確認已在應用程式暫停前引發所有通知。
雖然背景工作主要是針對暫停狀態的應用程式,但是設定背景工作的應用程式,也可以在應用程式位於前景時觸發這些背景工作。
前置步驟
如需如何建立鎖定畫面應用程式以接收使用原始推播通知的背景網路通知的詳細資訊,請參閱如何建立使用背景原始推播通知的鎖定畫面應用程式。
如需登錄推播通知通道並將它傳送給伺服器、登錄背景工作以便從原始推播通知啟用、將原始推播通知傳送到通道並啟用背景工作的處理程序詳細資訊,請參閱如何使用 WNS 將原始推播通知傳遞到鎖定畫面應用程式。
如需使用原始推播通知的指導方針和檢查清單的詳細資訊,請參閱
相關主題
其他資源
如何使用 Windows 推播通知服務 (WNS) 進行驗證
參考
Windows.ApplicationModel.Background
Windows.Networking.BackgroundTransfer
Windows.Networking.PushNotifications
範例