快速入门:为移动服务添加推送通知 (JavaScript)
[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
此快速入门将引导你使用 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。它包含发送推送通知的代码。 注意 用于发送推送通知的代码可以包括在任何已注册的脚本文件中。此脚本的位置取决于通知触发的方式。可以针对表格的插入、更新、删除或读取操作,或作为计划的作业,或作为自定义的 API 注册脚本。有关详细信息,请参阅在移动服务中使用服务器脚本。在本案例中,此代码将移至针对 TodoItem 表格中的插入操作注册的脚本文件中。
展开“TodoItem”表,打开 insert.js 文件并将当前插入函数替换为以下代码,然后保存更改:
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 标识提供商验证用户。有关详细信息,请参阅身份验证入门。