原文地址:http://hi.baidu.com/hh20040410/blog/item/460708cc7bdae41a01e9288c.html
标注:APNs 苹果推送服务器
Device 安装带有推送服务程序的iPhone手机
Provider 程序服务器,把需要推送的信息发给 APNs
DeviceToken 在Device第一次连接APNs时,由APNs生成的经过加密的连接认证信息。在以后的连接中,无论时Provider到APNs还是APNs到Device 都需要 DeviceToken作为认证。
Payload 需要推送的消息的主体内容。alert-alert消息的消息体,按键标题等badge-显示在程序icon右上角的数字,sound-声音提示文件的文件名,该声音资源文件要在程序包中。
整体流程大体分为五个步骤:
1: Device --> 连接--> APNs 获取 DeviceToken
2: Device -->连接--> Provider 提供DeviceToken
3: Provider侦测需要push的消息生成Notification信息
4: Provider侦把要push的消息推送到APNs
5: APNs把该消息推送到手机
使用方法:
为了获取deviceToken
第一步:获取认证书Certificates.p12 [注释:.p12 文件,文件名可以随便取]
该Certificates.p12 认证书 是用于服务器与APNs服务器SSL 连接时的认证,而获取p12的前提是获取APNs Assistant
1:每个程序都要在apple开发中心生成 App ID.
2:单击app id 的后面的 Configure
3:在新的页面中,勾选Enable Push Notification Services , 而后点击Configure ,随后出现APNs Assistant,APNs助手会引导生成你的程序与APNs服务器进行SSL连接的认证书App ID specific Client SSL certificate[注释:一般文件名为“aps_developer_identity.cer” 可修改]
4:APNs助手会引导你保存SSL certificate到你的硬盘,保存好后双击,安装到你的keychain
5: 执行完以上四步,可以点击Done,关闭APNs助手。
6:启动Keychain Access程序,查看刚才安装的认证,name 为apple Development/Production push Services。。。
导出--即获得Certificates.p12 保存好给Provider 服务器使用
第二步:iPhone 端
iPhone provisioning 以开启了PUSH功能App ID 生成相应的provisioning。
iPhone需要用到的方法函数如下:
//注册启用 push
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge /*|UIRemoteNotificationTypeSound*/)];
//用该判断 程序是不是通过push消息启动的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//iPhone 从APNs服务器获取deviceToken后激活该方法
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
//注册push功能失败 后 返回错误信息,执行相应的处理
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
注意:
deviceToken的处理
[[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]
调测试方法:
Device
调试运行iPhone端程序,以获取deviceToken 为成功标志。
Provider
网上有个共开发测试的Provider程序:
PushMeBaby:
使用的方法是,
1;拷贝注册获取的SSL certificate文件【.cer文件】重命名为 apns.cer 添加到PushMeBaby资源文件夹中
2: 运行,输入 iPhone端获取的deviceToken
3: 推送
以Device 程序获得相应消息为成功标志。
分享到:
相关推荐
推送技术是基于APNs(Apple Push Notification Service)的,APNs是Apple提供的一种推送服务,允许应用程序在后台运行时接收来自服务器的消息。APNs使用了基于证书的身份验证机制来确保推送消息的安全性。 推送技术...
APNS(Apple Push Notification Service)苹果推送通知服务。该技术由苹果公司提供的APNS服务。工作原理:首先,APNS会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书已确定其为...
APNs(Apple Push Notification service)是苹果公司提供的推送服务,允许开发者将消息推送到用户的iOS设备上。本教程将重点讲解如何使用Java实现基于HTTP/2协议的APNS推送,并假设你已经对JDK 11及以上版本有一定的...
在iOS应用开发中,为了实现在用户不使用应用程序时也能接收到消息,苹果公司提供了Apple Push Notification service(APNs)服务。本篇文章将详细介绍如何在服务器端使用Java来实现iPhone的推送通知功能。 首先,...
本文将从多个角度对iPhone推送通知的功能原理进行深入解析,帮助读者更好地理解并运用这一技术。 #### 一、推送通知概述 **推送通知**是一种允许应用程序远程发送消息到用户的设备上的服务。这些消息可以是简单的...
Apple Push Notification Service 是苹果公司提供的服务,允许开发者向用户的iOS设备发送消息。这些消息可以是应用内更新、消息通知或其他相关信息。APNs有两种模式:生产环境和开发环境,分别用于发布应用和调试...
标题和描述中提到的是关于iOS设备的推送通知服务(Push Notification Service, 简称Push)的修复方法,特别是针对已经越狱的iPhone设备。在iOS系统中,推送通知允许应用在用户未直接运行该应用时,通过Apple的服务器...
JavaPNS是Java平台上用于实现Apple Push Notification Service (APNs)的一个开源库,版本2.2提供了对iPhone设备推送通知的支持。APNs是苹果公司提供的一个服务,允许开发者向iOS、iPadOS以及watchOS设备发送远程通知...
苹果公司为了方便开发者向iOS设备发送推送通知,推出了自己的推送服务——Apple Push Notification service (APNs)。为了更好地利用APNs,开发者通常会选择第三方库来简化这一过程。本例中使用的库为`JavaPNS`,它...
在这个过程中,Java作为服务器端的语言,负责发送推送通知到苹果的Push Notification Service(APNs),然后由APNs将这些通知转发给iPhone设备。 首先,我们需要了解Apple Push Notification Service (APNs)的工作...
苹果推送服务(Apple Push Notification service, APNS)是苹果公司提供的一项服务,用于向iOS设备推送消息。APNS推送机制主要包括三个参与方:应用程序的服务器端(Provider)、苹果的推送服务器(APNS)以及目标iOS...
这个过程主要涉及Apple Push Notification Service(APNS),这是苹果公司提供的一个服务,允许开发者将实时信息推送到用户的iPhone或其他iOS设备上。 描述虽然简洁,但暗示我们将讨论如何在.NET环境中实现这一功能...
本文将深入探讨“iOS消息推送Demo”相关知识点,主要围绕苹果的Apple Push Notification service (APNS)展开,以及如何在客户端实现这一功能。 一、Apple Push Notification Service (APNS) APNS是苹果公司提供的一...
**苹果推送通知服务(Apple Push Notification service,简称APNS)** APNS是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备推送通知。通过APNS,应用开发者可以在他们的应用不在前台运行...
Java消息推送给iPhone涉及到的是iOS应用开发中的远程通知服务,主要使用Apple的Push Notification Service (APNs)。在iOS设备上,当应用不在前台运行时,开发者可以通过APNs向设备发送消息,提醒用户有新的信息或者...
在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...
然而,在实现这一功能时,开发者需要理解iOS推送服务(APNs, Apple Push Notification service)的不同证书类型及其用途。本文将详细解释iOS推送服务中的测试证书和发布证书的区别,并提供一些关键步骤来帮助开发者...