快速入門:為行動服務加入推播通知 (JavaScript)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
本快速入門會逐步引導您使用 Azure 行動服務在應用程式中啟用推播通知。 行動服務使用 Windows 推播通知服務 (WNS) 讓您輕鬆傳送推播通知到應用程式。若要深入了解,請參閱行動服務開發人員中心。只要您具有 Microsoft Visual Studio 2013,就可以輕鬆地啟用行動服務應用程式中的推播通知。這個主題是以之前的快速入門:新增行動服務主題為基礎。完成後,您將會在新的行動服務中加入推播通知,然後傳送新的通知來測試應用程式。
先決條件
- Visual Studio 2013 Update 3**
- 有效的 Windows 市集帳戶。
- 完成之前的快速入門:新增行動服務主題。
在應用程式中新增及設定推播通知
首先,使用 Visual Studio 2013 中的 [加入推播通知] 精靈在 Windows 市集註冊您的應用程式、設定行動服務來啟用推播通知,然後在應用程式新增程式碼以註冊裝置通道。
注意 這個主題假設已在專案新增行動服務連線,這在之前的主題中已經完成。 如果還沒有連線行動服務,[加入推播通知] 精靈會為您建立這個連線。
- 在 Visual Studio 2013 中開啟 [方案總管],在專案上按一下滑鼠右鍵,依序按一下 [加入]、[推播通知...]****。此時會啟動 [加入推播通知] 精靈。
- 按 [下一步],登入您的 Windows 市集帳戶,然後在 [保留新名稱]**** 中提供一個名稱,再按一下 [保留]。此時會在 Windows 市集中建立一個新的應用程式註冊。
- 在 [應用程式名稱]**** 清單中按一下新的註冊,然後按 [下一步]。
- 選取完成快速入門:新增行動服務或快速入門:使用 C++ 新增行動服務時建立的行動服務,按 [下一步]****,然後按一下 [完成]。這會將您的行動服務設定成使用 Windows 推播通知服務 (WNS),以便能夠傳送通知到您的應用程式。注意 如果您的應用程式還沒有設定連線到行動服務,精靈也會完成與快速入門:新增行動服務中示範的相同設定工作。
- (選擇性) 開啟產生的 YourMobileService.push.register.js 程式碼檔案並檢查程式碼。這個程式碼可確保每次啟用應用程式時,都會嘗試註冊裝置,並且還包含對 notifyallusers 自訂 API 的呼叫。
- (選擇性) 在 [伺服器總管] 中,依序展開 [行動服務]、您的服務名稱,然後開啟 notifyallusers.js 檔案。這個檔案 (儲存在您的行動服務中) 包含會傳送推播通知給所有已註冊之使用者的 JavaScript 程式碼。
- 按 F5 鍵以執行應用程式,並確認可立即從行動服務接收到通知。
更新產生的推播通知程式碼。
[加入推播通知] 精靈會新增可對所有已註冊的使用者觸發測試通知的程式碼。雖然這可以在應用程式執行時輕鬆示範通知,但是一般來說不是有意義的案例。因此,您將會移除對 notifyallusers 的呼叫,並進行一些修改,以在 TodoItem 表格進行插入時會將通知傳送給所有已註冊之裝置的程式碼來取代它。
在 [伺服器總管] 中,依序展開 [行動服務]、您的服務名稱,然後展開 notifyallusers.js。它包含會傳送推播通知的程式碼。 注意 傳送播放通知的程式碼可以包含在任何註冊的指令碼檔案內。這個指令碼的位置取決於通知的觸發方式。指令碼可以將資料表中的 insert、update、delete 或 read 操作註冊為排程工作或自訂 API。如需詳細資訊,請參閱在行動服務中使用伺服器指令碼。在此例中,這個程式碼被移動到 TodoItem 資料表 insert 操作中註冊的指令碼檔案。
展開 [TodoItem] 資料表,開啟 insert.js 檔案並以下列程式碼取代目前的 insert 函式,然後儲存變更:
function insert(item, user, request) { // Define a payload for the Windows Store toast notification. var payload = '<?xml version="1.0" encoding="utf-8"?><toast><visual>' + '<binding template="ToastText01"> <text id="1">' + item.text + '</text></binding></visual></toast>'; request.execute({ success: function() { // If the insert succeeds, send a notification. push.wns.send(null, payload, 'wns/toast', { success: function(pushResponse) { console.log("Sent push:", pushResponse); request.respond(); }, error: function (pushResponse) { console.log("Error Sending push:", pushResponse); request.respond(500, { error: pushResponse }); } }); } }); }
當您儲存對 insert.js 檔案所做的變更時,新版本的指令碼會上傳到您的行動服務中。
現在,當您插入新的 TodoItem 時,就會立即回傳新的推播通知給發出插入要求的裝置。
在 Visual Studio 中,按 F5 鍵以執行應用程式。
在應用程式的 [插入 TodoItem] 中輸入一些文字,然後按一下 [儲存]****。請注意,在 Azure 資料表中執行插入之後,會立即將通知傳送回裝置。
(選擇性) 同時在兩個電腦上執行應用程式,然後重複前面的步驟。確認已將通知傳送到所有正在執行的應用程式執行個體。
摘要與後續步驟
現在您知道如何使用行動服務將推播通知功能新增到 Windows 市集應用程式。
接下來,學習如何使用行動服務透過 Microsoft 帳戶、Facebook、Twitter 或 Google 身分識別提供者來驗證使用者。如需詳細資訊,請參閱開始使用驗證。