APNs --Apple Push Notification Service
(图片来源--apple 开发文档)
标注: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)是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备发送远程通知。通过APNS,应用开发者可以在他们的应用程序不在前台运行时,仍然能够向用户发送...
APNs(Apple Push Notification service)是苹果公司提供的推送服务,允许开发者将消息推送到用户的iOS设备上。本教程将重点讲解如何使用Java实现基于HTTP/2协议的APNS推送,并假设你已经对JDK 11及以上版本有一定的...
在IT行业中,苹果推送通知服务(Apple Push Notification Service,简称APNS)是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS以及macOS设备发送实时的通知。开发者可以使用APNS来实现在应用程序不在前台运行...
在Java开发环境中,当需要构建一个能够向Apple Push Notification Service (APNS)发送推送通知的服务时,`notnoop-java-apns`是一个常用的第三方库。这个压缩包`notnoop-java-apns.zip`包含了开发者用于实现这一功能...
Java整合APNS推送服务是将Java应用程序与Apple Push Notification Service(APNS)相结合,以便能够向iOS和tvOS设备发送即时消息。APNS是苹果公司提供的一个服务,它允许开发者在用户不打开应用的情况下,向他们的...
该项目是一款基于Java语言实现的苹果推送服务APNS客户端库——APNS4J的设计源码,共包含37个文件,主要包括31个Java源文件、1个Git忽略文件、1个YAML配置文件、1个LICENSE文件、1个README文本文件、1个Markdown文件...
Java调用APNs(Apple Push Notification service)推送是iOS应用开发者在进行远程通知服务时常见的需求。APNs是苹果提供的一项服务,允许开发者将实时消息推送到用户的iOS设备上,如应用更新、消息提醒等。在Java...
Java APNS,全称为Apple Push Notification service,是苹果公司提供的一项服务,允许应用程序开发者向iOS、iPadOS、watchOS和macOS设备发送实时通知。在Java中实现APNS服务器,可以让我们利用Java强大的编程能力来...
APNSPHP是一个专门为苹果推送通知服务(Apple Push Notification service,简称APNs)设计的PHP库。这个库的主要目的是帮助PHP开发者方便地与苹果服务器进行通信,以便向iOS、macOS和watchOS设备发送推送通知。从...
APNS是苹果公司提供的服务,允许开发者通过云端将实时消息推送到iOS、iPadOS、watchOS以及macOS设备上的应用程序。下面将详细阐述.NET APNS推送的相关知识点。 1. **Apple Push Notification Service (APNS)**: ...
APNS(Apple Push Notification Service)是苹果公司提供的一个服务,用于向iOS、iPadOS、watchOS、tvOS等设备发送实时通知。开发者可以通过使用APNS来实现在应用未运行时向用户发送消息的功能,如新消息提醒、应用...
在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...
**苹果推送通知服务(Apple Push Notification service,简称APNS)** APNS是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备推送通知。通过APNS,应用开发者可以在他们的应用不在前台运行...
在iOS应用开发中,Apple Push Notification service(简称APNs)是一项关键的远程通知服务,它允许开发者向用户的设备发送消息,即使应用没有运行在前台也能接收到这些消息。本篇文章将深入探讨如何使用PHP来实现一...
APNs (Apple Push Notification service) 是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备发送即时推送通知。在本文中,我们将深入探讨APNs的工作原理、iPhone上的实现以及如何利用源码...
数据库部分使用了MYSQL,这意味着应用可能存储了用户注册设备所需的令牌(device token),这些令牌是APNs服务识别特定设备的唯一标识。数据库也可能包含了其他与推送通知相关的数据,如用户订阅、消息记录等。 ...
2. **错误重试策略**:遇到推送失败时,应根据错误类型决定是否重试,避免滥用APNS服务。 3. **设备Token管理**:及时更新和清理无效的设备Token,防止无效推送浪费资源。 4. **日志监控**:记录推送日志,方便...
在iOS开发中,Apple Push Notification service(简称APNs)是一项至关重要的服务,它允许应用程序开发者向用户的设备发送远程通知,即使应用不在前台运行也能接收到这些消息。APNs的使用通常涉及服务器端和客户端两...
在iOS平台上,Apple Push Notification Service (APNs) 是苹果公司提供的一个服务,允许应用程序开发者向用户的设备发送远程通知。在本项目中,我们将探讨如何使用C#语言来实现iPhone的APNs推送。C#是一种广泛使用的...
在iOS应用开发中,苹果推送通知服务(Apple Push Notification Service,简称APNS)是一项至关重要的功能,它允许应用在后台时接收服务器发送的通知,从而实时更新用户信息或提醒用户。要实现APNS,开发者通常需要...