帮酷LOGO
0 0 评论


我认为,我想提供一个很好的概念,以便在所有平台上共享全部推进过程。

在未来BlackBerry版本中,将支持( *Support for Android运行时应用程序,并支持企业推送;然而,本文将重点介绍目前支持的平台中的消费者推送。 关于其他博客文章的更多细节。 )

我将重点关注这里服务的客户端部分。

对于尚不了解推送情况的任何人,下面简要介绍一下: 如果你的BlackBerry 10应用程序与服务器一起检索数据,则有几种方法可以通常知道新数据的可以用性:

  • 请求所有数据所有时间
  • 效率不高( 电池和带宽明智)
  • 信息可能在pull之前对客户可用
  • 客户端应用程序需要运行
  • 向服务器收费,并询问是否有新数据可用,如果可用的话拉拉
  • 信息可能在 poke 之前对客户可用
  • 客户端应用程序需要运行
  • Push - 当服务器可用时,服务器立即发送新的数据。
  • 有效
  • 客户机立即可以使用数据
  • 客户端应用程序不需要运行

入门

如果你还没有这样做,你可以在下面的站点上登录一个推送服务帐户: https://developer.blackberry.com/services/push

成功注册后,你将收到非常重要的信息,这些信息将用于创建客户机和服务器端应用程序。 将重点放在客户端上,你将收到一个应用程序 ID,它将在你的推送应用程序中使用 PPG ( 推送代理网关) URL,以便你的客户端从该应用程序标识开始接收推送数据。 稍后对这两个值更重要- 现在只有知道它们在注册使用推送服务之后收到。

调用框架

让我们从把一切都放在一起的Fragment开始: 调用框架。调用是一个非常强大的工具,用于黑莓 10. 这就是目标应用程序如何在运行或者关闭时接收被推送数据的方式。 记住,我们需要做的第一件事就是在收到推送请求时,将应用程序接收到调用请求。 为此,我们将一个调用目标元素添加到应用程序 bar-descriptor.xml * file:的

<invoke-targetid="unique.text.value"><entry-point>1</entry-point><type>APPLICATION</type><filter><action>bb.action.PUSH</action><mime-type>application/vnd.push</mime-type></filter></invoke-target>

上面粗体中的重要元素:

  • id - 这里值由你选择。 它是一个唯一的标识符,用于调用你的应用程序。 选择一个不可能被其他应用程序使用的值是很重要的。
  • action -" bb.action.PUSH"值表示这里调用目标可以处理数据推送。
  • MIME类型- 推送数据使用的MIME类型是" application/vnd.push",因此这里元素声明这里调用目标可以处理推数据MIME类型。

数字 2和 3 上面 不能改变,但是要理解它们代表的是什么。

一旦应用程序已经在条形描述符中安装了调用目标元素,现在就可以用推数据调用它了。 调用与非推调调用相同;唯一的区别是调用中提供的数据包含 PushPayload 对象的内容。 然而,在操作系统知道调用这个应用程序之前,需要注意一些事情,从推送通知服务开始。

如果你使用 BlackBerry webworks/html 5开发,那么你就可以修改 config.xml 文件。 上面 almost invoke目标 id=> become become" unique.text.value"XML XML XML XML XML target target

推送通知服务( )

始终在 BlackBerry 10上运行。 这个服务处理惟一应用程序 ID ( 在注册推送服务后收到) 和调用目标( 在 bar-descriptor.xml 文件中指定的上面 ) 之间的映射。 当应用程序首次启动时,应该始终创建一个 PushService 会话实例。 这里实例以 2个主要值作为参数: 调用目标和应用程序 ID。 成功创建之后,现在在应用程序ID和调用目标之间有一个映射。

为了基于一个快速的场景,当一个推送到,服务的设备上时,它总是包含一个应用程序,。 PNS将收到这里申请并读取申请 ID。 然后,它检查记录以查看在这里应用程序on上注册了哪些调用目标,然后根据这里映射调用应用程序。

PNS保证不会在你的名义上出现端口冲突。

使用推送服务注册

如果你已经这么远了,一切都准备好了。 但是,客户机应用程序仍然需要使用推送服务,以允许将指定的应用程序ID推送到你的设备。 使用BPS注册的过程称为创建"频道"。 这告诉BPS设备安装了必需的应用程序,并且它希望开始接收被推的数据。 这有助于防止被请求的数据被发送到你的设备。 通道是相当 static的- 它们通过设备重置来保持,因这里应该只在应用程序安装时创建一个。 通道可能会被服务器删除,所以建议每隔 30天创建一次频道或者更少。

通道创建由 PushService 节 上面 中提到的相同会话实例处理。 创建通道的调用返回"令牌"对象;此时,令牌是设备PIN的字符串表示形式。 这可以发送到服务器端应用程序,让它知道有一个新设备,希望开始接收推送数据。 这不是由框架处理的,因为服务器端实现会有所不同。 如果你使用的是推送服务中包含的服务器端示例,那么示例应用程序将演示如何执行该注册。

关闭客户端应用程序时处理推送调用的

再次依赖 PushService 实例,有一种方法可以调用,它允许应用程序在推送到达时在 background 中启动。

BlackBerry webworks/html 5 launchApplicationOnPush
级联- registerToLaunch
Adobe AIR registerToLaunch

如果设置为 true,则应用程序将在接收到并在最小化状态下运行时启动。 当用户当时在另一个应用程序中时,它们不会被这里过程中断- 它是透明的。 客户端应用程序可以根据需要处理推送,并可能使用通知api让用户知道可以查看的新数据。

Summary/Conclusion/Where 到下一步

嗯,你有它- 一个跨黑莓 10的跨板推广概述。 如果你想添加推送到你的应用程序的力量,那么我将推荐下面几个步骤:

  • 用于评估推送服务的 register。 这提供了一种在实时环境中测试推送服务的方法。 这可以在今天的黑莓 10开发设备( 当前不支持模拟器) 上进行测试。
  • 查看你希望目标的平台示例。 所有示例都提供了相同的UI和功能,因这里它是你熟悉的内容:

级联
BlackBerry webworks/html 5版
AIR

如果你想要更多关于推送的信息,请查看以下资源:




Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语