`
wanggp
  • 浏览: 149899 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转]APNs 服务

阅读更多

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推送的实现

    Java调用APNs(Apple Push Notification service)推送是iOS应用开发者在进行远程通知服务时常见的需求。APNs是苹果提供的一项服务,允许开发者将实时消息推送到用户的iOS设备上,如应用更新、消息提醒等。在Java...

    php实现的APNs服务端

    在iOS应用开发中,Apple Push Notification service(简称APNs)是一项关键的远程通知服务,它允许开发者向用户的设备发送消息,即使应用没有运行在前台也能接收到这些消息。本篇文章将深入探讨如何使用PHP来实现一...

    关于IOS_APNS推送消息(iphone端+服务端)

    在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...

    APNS push例子

    在iOS开发中,Apple Push Notification service(简称APNs)是一项至关重要的服务,它允许应用程序开发者向用户的设备发送远程通知,即使应用不在前台运行也能接收到这些消息。APNs的使用通常涉及服务器端和客户端两...

    ios 开发制作push证书(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 &gt; apns-dev.pem ``` 完成这些步骤后,你将获得一个...

    Android推送之APNS 网站调用提供推送技术

    尽管APNS是苹果公司的服务,主要为iOS设备提供推送,但有一些情况,例如目标用户群体包含iOS设备用户或者开发者需要跨平台兼容,APNS在Android上的应用也是必要的。 首先,理解APNS的工作原理至关重要。APNS是一个...

    iOS创建EMM_APNS证书流程.docx

    最后,将证书和无密码的私钥合并为一个文件,用于连接到APNs服务:`cat apns-dis-cert.pem apns-dis-key.pem &gt; apns-dis.pem`。这个`apns-dis.pem`文件是与Apple Push Notification Service通信的关键。 完成以上...

    IOS远程推送php测试--ApnsPHP-master

    APNs是苹果公司提供的一个服务,用于将推送通知发送到iOS设备、Apple Watch、tvOS设备以及macOS设备。当开发者需要提醒用户有新消息、更新或者应用内事件时,就会通过APNs实现。APNs有两种工作模式:Sandbox(沙盒...

    java进行苹果APNS消息推送

    首先,APNS是苹果公司提供的服务,允许开发者向其应用的用户发送即时消息,如通知、提醒或应用内更新。这种服务通过建立安全的SSL/TLS连接,将消息从服务器推送到设备,无需应用在后台运行。 要使用Java实现APNS,...

    苹果 APNS2 推送DEMO

    APNs是苹果公司提供的服务,允许应用程序在后台接收来自服务器的消息,如新消息通知、提醒等。 在APNS2中,推送通知经历了从HTTP/2到HTTPS的转变,增强了安全性并提高了效率。这个DEMO将展示如何使用新协议进行推送...

    ios 服务器推送,c++代码

    APNS是一个基于证书的安全服务,服务器端需要一个Apple签发的证书来验证其身份并建立与APNS服务器的连接。这个证书可以是生产环境或开发环境的,根据你推送的目标设备类型(测试或正式发布)来选择。 C++实现APNS...

    iphone 推送通知 服务器端java 实现

    在iOS应用开发中,为了实现在用户不使用应用程序时也能接收到消息,苹果公司提供了Apple Push Notification service(APNs)服务。本篇文章将详细介绍如何在服务器端使用Java来实现iPhone的推送通知功能。 首先,...

    ios消息推送 使用notnoop消息推送

    这里,`ApnsServiceFactory`是Notnoop提供的类,用于创建APNs服务实例。 4. **构建通知**:Notnoop提供`ApnsNotification`类用于构建推送消息。你可以设置标题、正文、角标等属性。例如: ```java ...

    notnoop推送实例+证书配置注意事项

    在iOS应用开发中,苹果推送服务(Apple Push Notification service,简称APNs)是苹果提供的一种向用户设备发送通知的服务。`notnoop`是Java库,用于帮助开发者与APNs进行交互,实现远程推送通知功能。本文将深入...

    iOS-远程推送流程

    苹果推送服务(Apple Push Notification Service, APNS)是实现这一功能的核心组件。 #### 二、推送流程详解 **1. 应用注册APNS消息推送** 当应用首次启动时,会通过`UIApplication::...

    flask-apns:从烧瓶发送 APNS 消息

    APNS 是苹果公司提供的一项服务,允许开发者向用户的 iOS 和 macOS 设备发送远程通知,即使应用不在后台运行也能接收到这些消息。 在 Flask 应用中集成 `Flask-Apns`,你可以快速、高效地构建推送通知功能,而无需...

    mac给苹果服务器发推送信息

    APNs是苹果公司提供的一个服务,允许开发者将消息推送到用户的iOS、iPadOS、watchOS、tvOS以及Mac OS设备上,而无需应用程序处于运行状态。下面我们将深入探讨如何在Mac上实现这一功能。 **1. 了解Apple Push ...

    IOS消息推送服务后台,C#版

    在iOS应用开发中,苹果提供了Apple Push Notification service (APNs) 来实现远程通知功能,即我们常说的消息推送服务。本资源提供的是一个基于C#语言实现的iOS消息推送服务后台,它允许开发者通过服务器端向iOS设备...

    IOS原生推送依赖jar加载

    开发者可以使用这个库来构建和发送包含通知数据的payload,这些数据会被APNs服务转发到目标设备。 在集成这两个依赖时,开发者通常需要做以下步骤: 1. **配置项目**: 将bcprov-jdk16-145.jar和javapns-jdk16-163....

    java服务器端 支持 ios的推送 demo

    在iOS应用开发中,为了实现实时的消息推送功能,苹果公司提供了一项名为Apple Push Notification Service(APNs)的服务。本教程将通过一个基于Java服务器端的推送demo,帮助你理解如何实现iOS设备的消息推送流程。 ...

Global site tag (gtag.js) - Google Analytics