APNs --Apple Push Notification Service
标注: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 程序获得相应消息为成功标志。
分享到:
相关推荐
Java调用APNs(Apple Push Notification service)推送是iOS应用开发者在进行远程通知服务时常见的需求。APNs是苹果提供的一项服务,允许开发者将实时消息推送到用户的iOS设备上,如应用更新、消息提醒等。在Java...
在iOS应用开发中,Apple Push Notification service(简称APNs)是一项关键的远程通知服务,它允许开发者向用户的设备发送消息,即使应用没有运行在前台也能接收到这些消息。本篇文章将深入探讨如何使用PHP来实现一...
在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...
在iOS开发中,Apple Push Notification service(简称APNs)是一项至关重要的服务,它允许应用程序开发者向用户的设备发送远程通知,即使应用不在前台运行也能接收到这些消息。APNs的使用通常涉及服务器端和客户端两...
最后,将apns-dev-cert.pem和apns-dev-key-noenc.pem合并成apns-dev.pem文件,该文件在连接到APNs时使用: ```bash cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem ``` 完成这些步骤后,你将获得一个...
尽管APNS是苹果公司的服务,主要为iOS设备提供推送,但有一些情况,例如目标用户群体包含iOS设备用户或者开发者需要跨平台兼容,APNS在Android上的应用也是必要的。 首先,理解APNS的工作原理至关重要。APNS是一个...
最后,将证书和无密码的私钥合并为一个文件,用于连接到APNs服务:`cat apns-dis-cert.pem apns-dis-key.pem > apns-dis.pem`。这个`apns-dis.pem`文件是与Apple Push Notification Service通信的关键。 完成以上...
APNs是苹果公司提供的一个服务,用于将推送通知发送到iOS设备、Apple Watch、tvOS设备以及macOS设备。当开发者需要提醒用户有新消息、更新或者应用内事件时,就会通过APNs实现。APNs有两种工作模式:Sandbox(沙盒...
首先,APNS是苹果公司提供的服务,允许开发者向其应用的用户发送即时消息,如通知、提醒或应用内更新。这种服务通过建立安全的SSL/TLS连接,将消息从服务器推送到设备,无需应用在后台运行。 要使用Java实现APNS,...
APNs是苹果公司提供的服务,允许应用程序在后台接收来自服务器的消息,如新消息通知、提醒等。 在APNS2中,推送通知经历了从HTTP/2到HTTPS的转变,增强了安全性并提高了效率。这个DEMO将展示如何使用新协议进行推送...
APNS是一个基于证书的安全服务,服务器端需要一个Apple签发的证书来验证其身份并建立与APNS服务器的连接。这个证书可以是生产环境或开发环境的,根据你推送的目标设备类型(测试或正式发布)来选择。 C++实现APNS...
在iOS应用开发中,为了实现在用户不使用应用程序时也能接收到消息,苹果公司提供了Apple Push Notification service(APNs)服务。本篇文章将详细介绍如何在服务器端使用Java来实现iPhone的推送通知功能。 首先,...
这里,`ApnsServiceFactory`是Notnoop提供的类,用于创建APNs服务实例。 4. **构建通知**:Notnoop提供`ApnsNotification`类用于构建推送消息。你可以设置标题、正文、角标等属性。例如: ```java ...
在iOS应用开发中,苹果推送服务(Apple Push Notification service,简称APNs)是苹果提供的一种向用户设备发送通知的服务。`notnoop`是Java库,用于帮助开发者与APNs进行交互,实现远程推送通知功能。本文将深入...
苹果推送服务(Apple Push Notification Service, APNS)是实现这一功能的核心组件。 #### 二、推送流程详解 **1. 应用注册APNS消息推送** 当应用首次启动时,会通过`UIApplication::...
APNS 是苹果公司提供的一项服务,允许开发者向用户的 iOS 和 macOS 设备发送远程通知,即使应用不在后台运行也能接收到这些消息。 在 Flask 应用中集成 `Flask-Apns`,你可以快速、高效地构建推送通知功能,而无需...
APNs是苹果公司提供的一个服务,允许开发者将消息推送到用户的iOS、iPadOS、watchOS、tvOS以及Mac OS设备上,而无需应用程序处于运行状态。下面我们将深入探讨如何在Mac上实现这一功能。 **1. 了解Apple Push ...
在iOS应用开发中,苹果提供了Apple Push Notification service (APNs) 来实现远程通知功能,即我们常说的消息推送服务。本资源提供的是一个基于C#语言实现的iOS消息推送服务后台,它允许开发者通过服务器端向iOS设备...
开发者可以使用这个库来构建和发送包含通知数据的payload,这些数据会被APNs服务转发到目标设备。 在集成这两个依赖时,开发者通常需要做以下步骤: 1. **配置项目**: 将bcprov-jdk16-145.jar和javapns-jdk16-163....
在iOS应用开发中,为了实现实时的消息推送功能,苹果公司提供了一项名为Apple Push Notification Service(APNs)的服务。本教程将通过一个基于Java服务器端的推送demo,帮助你理解如何实现iOS设备的消息推送流程。 ...