快速入门:为移动服务添加推送通知 (JavaScript)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

此快速入门将引导你使用 Azure 移动服务在应用中启用推送通知。 通过使用 Windows 推送通知服务 (WNS),移动服务使你可以轻松地将推送通知发送到你的应用。要了解详细信息,请参阅移动服务开发人员中心。拥有 Microsoft Visual Studio 2013 之后,你可以轻松地在移动服务应用中启用推送通知。本主题建立在上一个主题快速入门:添加移动服务的基础之上。完成后,推送通知已添加到你的新移动服务中,并且已通过发送新通知测试了应用。

先决条件

在应用中添加和配置推送通知

首先,在 Visual Studio 2013 中使用“添加推送通知”向导以在 Windows 应用商店中注册你的应用、将你的移动服务配置为启用推送通知,并将代码添加到应用以注册设备通道。

注意  本主题假定移动服务连接已添加到项目中(已在上一主题中完成此操作)。 如果移动服务尚未连接,“添加推送通知”向导将为你创建此连接。

 

  1. 在 Visual Studio 2013 中,打开解决方案资源管理器,右键单击该项目,单击“添加”,然后单击“推送通知...”****。这将启动“添加推送通知”向导。
  2. 单击“下一步”,登录到你的 Windows 应用商店帐户,然后在“保留新名称”****中提供一个名称,并单击“保留”。这将在 Windows 应用商店中创建一个新的应用注册。
  3. 单击“应用名称”****列表中的新注册,然后单击“下一步”。
  4. 在你完成快速入门:添加移动服务快速入门:添加使用 C++ 的移动服务后,选择你创建的移动服务,单击“下一步”****,然后单击“完成”。该操作会将你的移动服务配置为与 Windows 推送通知服务 (WNS) 结合使用,以便向你的应用发送通知。注意  如果你的应用尚未配置为连接到移动服务,向导也会完成快速入门:添加移动服务中展示的相同的配置任务。  
  5. (可选)打开生成的 YourMobileService.push.register.js 代码文件并检查该代码。此代码可确保每当激活应用时都尝试注册设备,并且包含对 notifyallusers 自定义 API 的调用。
  6. (可选)在“服务器资源管理器”中,依次展开“移动服务”、你的服务名称,然后打开 notifyallusers.js 文件。此文件(存储在你的移动服务中)包含向所有注册用户发送推送通知的 JavaScript 代码。
  7. 按 F5 键运行该应用并验证通知已从移动服务立即接收。

更新生成的推送通知代码

“添加推送通知”向导可添加向所有注册用户发送测试通知的代码。虽然这使得在应用运行时显示通知更为简单,但是这通常不是一个有意义的方案。因此,你将删除对 notifyallusers 的调用并替换它,对其做一些更改,将其替换为在 TodoItem 表中进行插入时向所有注册用户发送通知的代码。

  1. 在“服务器资源管理器”中,依次展开“移动服务”、你的服务名称以及 notifyallusers.js。它包含发送推送通知的代码。 注意  用于发送推送通知的代码可以包括在任何已注册的脚本文件中。此脚本的位置取决于通知触发的方式。可以针对表格的插入、更新、删除或读取操作,或作为计划的作业,或作为自定义的 API 注册脚本。有关详细信息,请参阅在移动服务中使用服务器脚本。在本案例中,此代码将移至针对 TodoItem 表格中的插入操作注册的脚本文件中。

     

  2. 展开“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 时,新的推送通知将立即发送回发送插入请求的设备。

  3. 在 Visual Studio 中,按 F5 键以运行应用。

  4. 在应用中,在“插入 TodoItem”中键入文本,然后单击“保存”****。请注意,在 Azure 中对表格进行了插入操作后,通知将立即发回到设备。

  5. (可选)同时在两个计算机上运行应用,然后重复之前的步骤。验证通知已发送给正在运行的应用实例。

摘要和后续步骤

现在你已了解了如何使用移动服务将推送通知功能添加到你的 Windows 应用商店应用中。

接下来,考虑学习如何使用移动服务来通过 Microsoft 帐户、Facebook、Twitter 或 Google 标识提供商验证用户。有关详细信息,请参阅身份验证入门

相关主题

在移动服务中计划定期作业

在移动服务中使用服务器脚本