Share via


Windows Azure 移动服务的iOS 支持 — — 现在有了推送通知

[原文发表地址]  iOS Support with Windows Azure Mobile Services – now with Push Notifications

[原文发表时间] 2012-12-4 21:55

几周前,我发表了一篇有关Windows Azure 移动服务的若干改进的博文。其中之一就是增加一个Objective-C客户端 SDK来允许 iOS 开发人员方便地使用移动服务处理数据和身份验证。今天我很兴奋地宣布几项对我们的 iOS SDK 的改进,最重要的还是我们通过APNS(苹果推送通知服务)推送通知的新支持。这使得它非常简单地从 Windows Azure 移动服务的脚本中推送通知给您的 iOS 用户。

通过APNS推送通知

我们提供了两个完整的教程,它们会带您逐步完成设置和配置步骤来启用您的Windows Azure 移动服务应用程序的APNS(苹果推送通知服务),包括所有必需的步骤来配置你的应用程序以在苹果 iOS 配置门户中推送:

一旦您在苹果 iOS配置门户上配置了您的应用程序,并上传了APNS推送证书,你只需使用 Windows Azure 管理门户将您的APNS推送证书上传到移动服务中:

image

点击您的移动服务的“ Push(推送)”选项卡项下的“upload(上传)”按钮,您可以浏览您的本地文件系统以及定位/上传您导出的证书。除此之外,您还可以选择使用沙盒 (dev) 或产品(prod) 苹果服务:

image

现在,要从 Windows Azure 移动服务内发送一个推送通知给您的客户端,只需下面几行简单的代码:

 push.apns.send(deviceToken, { 
      alert: 'Toast: A new Mobile Services task.', 
      sound: 'default' 
 }); 

这将使 Windows Azure 移动服务连接到APNS (苹果推送通知服务),并通过 deviceToken将通知发送到您指定的 iOS 设备:

image

签出我们的参考文档来详细了解如何使用新的 Windows Azure 移动服务APNS对象来发送推送通知。

反馈脚本

任何PNS (推送通知服务)的一个重要部分是为过期的设备标记和管道处理反馈。这通常发生在您的应用程序从某个特定设备中卸载,并不再收到通知时。通过 Windows Notification Services(Windows通知服务),您可以从 HTTP 服务器中获取一个即时的响应。苹果的通知服务的工作方式略有不同,它提供额外端点供你连接来获取一个过期标记的列表。

随着将所有功能集成到移动服务中,我们的目标是让开发人员能够更多关注于构建他们的应用程序,而较少关注构建基础架构来支持他们的想法。因此我们知道必须提供一种简单的方式来让开发人员可以定期地整合来自APNS的反馈。

本周的更新包括在门户网站上添加一个新屏幕,它让您可以选择性地提供一个脚本来处理您的APNS反馈 — —它将一直由移动服务来执行:

image

当您的服务处于活跃状态时,此脚本会被定期调用。若要获取反馈端点,您可以简单地从此脚本内调用apns对象的 getFeedback 方法:

 push.apns.getFeedback({  
      success: function(results) { 
           // results is an array of objects with a deviceToken and time properties 
      } 
 }); 

这将返回一个无效标记的列表,您可以从您的数据库中删除它们。

iOS 客户端 SDK 的改进

在上个月,我们继续与 iOS 顾问们一起对我们的Objective-C SDK做出改进。该SDK 是在开放源码许可证 (Apache 2.0)下开发的 ,并且可以在github上得到。

很多改进是在幕后进行的以提高性能和内存使用情况。然而,我们的 iOS 客户端 API 的最大改进之一是增加了一种更简单的登录方法。下面是你激活它所需要的Objective-C代码:

 [client loginWithProvider:@"twitter"  
                    onController:self 
                        animated:YES 
                      completion:^(MSUser *user, NSError *error) { 
      // if no error, you are now logged in via twitter 
 }]; 

此代码将自动呈现,将我们的登录视图控制器当作指定控制器上的一个模态对话框。它将为您做好所有艰辛的工作,使得通过 Twitter、Google、 Facebook 和微软帐户登录时只需几行代码。

我的同事 Josh 刚刚发布了一个简短视频,演示了这些新的功能,我建议签出它:

image

摘要

现在,上述各项功能都在产品中,可立即使用。如果您还没有一个 Windows Azure帐户,您可以注册一个免费试用的,然后今天就开始使用移动服务。访问Windows Azure 移动开发人员中心来了解有关如何使用移动服务构建应用程序的更多信息。

希望这会对你有所帮助,

Scott

P.S. 除了写博客之外,我现在也正在使用 Twitter来快速更新和分享链接。我的Twitter是 : twitter.com/scottgu