Namespaces
Variants
Actions

Notification API 白皮书

Jump to: navigation, search
文章信息

代码示例
文章
flycarl 在 08 May 2011 创建
最后由 hamishwillee 在 13 Jun 2012 编辑

Contents

Notification API 概览

集成在Qt SDK中的Notification API使你能很容易地向你的应用推送实时通知。通过即时,高效,轻量级的通知,你的应用能始终保持在用户的视野中,同时,使用Notification API能使你的应用更省电,更省流量,在给用户提供更多功能的同时,不影响设备性能和数据带宽。

创建更有效的通知的挑战

今天移动用户期望得到新鲜的数据。更新的数据吸引用户注意,鼓励他们与应用更多地户动。好的应用有极佳的用户体验,能粘住用户,比如下面的例子:

  • 一款导航应用,提示用户换到优化的路径上,甚至更新目的地的天气情况。
  • 一个音乐商店基于用户的社交网络收藏给出推荐的播放列表。
  • 一个新闻应用及时地发送头条新闻。
Noti1.png

平衡的艺术

要开发一款具有通知功能的好应用,开发者往往需要在用户体验,和电池及数据流量使用,以及设计复杂度之间做出权衡,这是不小的挑战。 过于频繁地,持续地更新消息会让人很烦。 由客户端定时询问服务器是否有新消息这种轮询机机制, 会造成带宽和电池电量的浪费,用户不能接受。 推送解决方案是更有效的解决方案, 但通常开发者需要为不同的网络设计不同的版本,这导致额外的开发成本且效率低。还有的通知机制,采取“ 存储和传送”模型,将通知存在服务器上,定时推或者拉消息, 一定时间集中传送消息。使用这种策略,用户往往不能得到实时的新鲜的内容。开发者需要实现真正实时的信息传送。

在开发和管理消息发布的代码时,开发者需要管理设计和开发复杂性。比如在需要支持多个版本开发,且没有直观的辅助的工具时,开发消息发布费时费力。当平台或网络对消息功能和格式有严格的限制,或设备状态限制通知的发布方式时,设计难度更大。

解决方案

下面为你介绍使用Qt的Notification API的解决方案。应用程序和服务通过调用Nokia提供的通知服务来发送通知消息。这个服务自己维护了一个与手机端的连接来发送通知,使用优化了带宽使用,降低了开发难度,实时推送,并能提供丰富多样的用户体验。Notification API随Qt SDK发布,可在Nokia Developer获得,包含推送消息的服务端API,和接收通知的客户端API。

现在开发者可以在几小时内给自己的应用添加通知功能,且同样的代码可以在Symbian和Meego设备上运行,并支持任何网络。预制的通知屏幕显示UI很快就能加到应用中。开发者也可以定制自己的通知体验——可灵活决定如何设计和发送通知,可定制上限为1.5K的任意格式的数据,包括文本,xml,图片,或二进制数据。

Noti2.png

启动服务后,使用通知服务的应用可以共享通知服务提供的连接,不需要为持续的轮询维护多个网络连接,节省了带宽和电池电量。收到通知后,能即时显示到应用中,即使应用在后台,或没有运行,也可以处理,见后面的描述。

对整个生态系统的价值

Notification API可惠及 开发者,发行方 及 移动应用的消费者。

对开发者的效益

Notification API给开发者一种区别于其他应用的方法,使他们能轻松的穿透全球的Symbian和meego移动用户市场。使用Notification API的功能能快速地,容易定制地把应用带到用户注意力的前端。通过调用Nokia的服务设施,开发者能集中精力开发独特的用户体验,以吸引用户,以立足激烈的竞争市场。

对消费者的好处

下载量最高的应用表明用户喜欢实时信息,各类应用—游戏,新闻,地图,音乐,消息。用户对应用抱怨最多的是数据流量打,和电池消耗快。Notification API提升了网络和电池的使用效率,通过Notification API用户可获得更丰富的应用体验,而不影响设备和数据设置。

运营商

运营商 对智能手机应用带来的不断增加的流量可能最矛盾痛苦,一方面应用增多消耗他们大量的带宽,另一方面应用商店的销售额增加。 Notification API提供给开发者的高效的通知运输模型,运营商可以继续促销应用同时看到网络传输流量降低。

高层设计

Notification API 公开给开发者两个分离的接口:服务API和客户端API

服务API

服务API通过HTTP REST接口提供对通知服务的访问。应用程序的服务器需要调用这个接口来向运行在用户设备上的应用发通知。

客户端API

客户端API常驻在一个Nokia设备上,客户端API接收通知,应用程序要注册在客户端API上。客户端API随Qt SDK发布,可在Nokia Developer上获得。 一个兼容 Java SDK的版本计划在不久发布。

Noti3.png

通知典型的生命期

如图所示,应用接收通知前,它需要再通知服务上注册,并获取一个通知ID,通知ID可唯一的识别终端用户和目标应用, 并被通知服务用做适当的传送路线。

Noti4.png

应用程序,然后将这个通知ID分享给相应的应用服务器,这样应用服务器才知道接收者(这包含用户和应用)的地址。开发者需要保证应用和应用服务器共享了通知服务提供的通知ID。 应用适当的注册了且接收者的通知ID交给应用服务器后,服务器可以开始发送通知。

设计限制

预制的通知屏幕显示UI很快就能加到应用中。开发者也可以l灵活地定制自己的通知体验。

通过这个服务,通知可以发送到应用程序,无论应用程序处于何种激活转该。下面的表列出了开发者可用到的选项,与应用交互和刺激用户参与。例如,一个通知可以在激活的应用中实时更新,或把应用从未用的状态唤醒。通知可以用通知UI表示为一个弹出窗口,或者一个通知的启动可以设计成巧妙的更新或改变,作为活动UI的一部分,或在后台静默。总之有很多设计可能性。

Noti5.png

发送通知

应用服务器 产生的通知要先发送给通知服务(Nokia-host),通过通知服务公开的HTTP REST API,然后由通知服务传送给接收者(由通知ID指定)传送是通过通知服务和设别之间持续的连接。

通知的发送建立在“最佳效果”基础上。设施不提供发送成功,或由丢包或断线造成的传送失败的声明。

未来,Notification API可能限制在一个服务对一个应用的基础上。

接收通知

手机接到通知后,通过通知客户端API发给相应的应用。传送可不受目标程序的当前状态限制,无论应用是激活,在后台,甚至未运行(这是可唤醒或启用)都能得到通知

Noti6.png
图1接收到通知后前台应用更新
Noti7.png
图2接收到通知后唤醒后台应用
Noti8.png
图3接收到通知后保存在文件夹

很多情况下,用户不想接收通知,例如一天中某个时段,或特殊的地点。应用可以注销以阻止通知传送。开发者需要提供启用和禁用通知的选项。

不关闭的连接

Notification API启用一个不关闭的连接,任何使用Notification API的应用共享这个连接 (不同开发者开发的应用都可共享) 。共享连接的意思是增加应用不增加无线流量开销。

使用一个动态保持激活消息间隔 使得这个连接对电池消耗和数据流量进一步优化。维持持续连接所用的ping的间隔针对每个网络基础调节了,这样无论用户的位置和使用的网络,ping的频率调到最小。更少的ping可减少流量,省电,减少无线信号发射。

通知内容

通知服务发送的通知可选择附加上限1.5k的附件。通知API的设计是想让开发者发送轻量的通知,给应用程序提供上下文而不倾向发内容。由开发者举得ing如何使用通知,包含何种附件,通知出发何种行为。附件格式没有限制,可以是纯文本,XML,二进制数据等等。通知消息使用Zlib抒发压缩,进一步减少了流量。

安全性

所有连接到通知服务的连接用SSL加密: 手机和通知服务间的持续连接 及 应用服务器和通知服务间的HTTP连接。另外,HTTP REST API的服务请求都加密了,保证天年改制来自认证和证明的来源。

由于附件没有格式限制,应用程序还可以在附件上加密。

开始开发

如果你想在你的Symbian和Meego应用中加入通知,使用Notification API很容易,按照下面的步骤即可:

Nokia Developer账号

首先注册Nokia Developer获取访问Notifications API的权限。访问站点[www.forum.nokia.com/ www.forum.nokia.com/]

Noti9.png

Notification API工程站点

你可以访问Notification API工程站点和开发者控制台,DevKit,文档,案例,示例代码,和更多: https://projects.developer.nokia.com/notificationsapi

开发者控制台

Nokia Developer成员可以在开发者控制台中查看他们的服务,申请一个 应用ID,服务ID,和服务密码用来访问Notification API。服务ID和应用ID总是相同的。服务ID和服务密码要包含在应用服务器中,用在向HTTP REST 服务API发送请求时。应用ID(与服务ID有相同的值,成镜像) 要用在 手机上的程序向客户端API注册的时候。

Noti10.png

测试和发行

在服务器和客户端中加入通知支持后,你可以发送通知了!Nokia提供两个环境来运行你的服务和应用 :

沙盒环境: 使用Nokia寄存的沙盒环境来开发和测试你的应用,在这个环境,服务可以向客户端程序发通知,如同在产品环境一样。

产品环境:当你的服务测试好准备商业运行,可以部署到Nokia寄存的产品环境上。发布你的服务,意味着服务ID注册到Ovi Notification 产品环境上,且你的服务连接到产品服务的地址。

注意一个服务必须在沙盒环境中测试至少五天。然后可以在Ovi商店发布。

总结

对开发者,用户和网络运营商来说,Notification API增加了功能和价值而不增加开销。Notification API使得开发者更容易开发出更多的参与性,提供更具“粘性”的用户体验,在Symbian和Meego手机上。使用优化和共享的连接,用户可接收各种应用的通知,而不耗费更多的电量和网络流量。运营商不用担心“坏小孩”应用制造不必要的网络负担。

Notification API提供不限的设计 开发,部署和使用可能性。应用程序可随时获得通知,开发者可以任意方式使用通知来促发各种行为。Notification API提供添加通知的无限可能性,留给开发者广阔的创造性空间和,给Nokia用户提供即时获得新鲜数据的 诱人的用户体验。

例子代码

Media:NotificationChat.zip

参考链接

This page was last modified on 13 June 2012, at 13:56.
294 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved