`

iOS 用javapns插件实现push通知 小解

 
阅读更多
java端用到的push插件:http://code.google.com/p/javapns/downloads/list

应用过程中遇到的几个小问题,记录一下。
1. 因为debug用的push证书,与distribution用的证书是不一样的,所以
keystore参数指向的证书的地址要正确

2. debug发送push,和distribution发送push时,APNS的地址是不一样的,所以
isProduct 参数的取值为[false:debug版 ; true:distribution版]

==============================================
网上一篇挺好的文章(http://blog.csdn.net/zhenzhenzhao12/article/details/8204483) ==============================================
内容如下:

开发状态服务器地址: gateway.sandbox.push.apple.com 2195
产品状态服务器地址: gateway.push.apple.com               2195

Development和Production两个版本对应的apns device token是不同的,前者是develop的mobileprovision下获取的。后者是production的mobileprovision获取的。

Development和Production两个版本可以共用一个App ID,但是不能共用一个mobileprovision,所以要单独生成Distribution的证书供production版本使用。
注:Distribution的版本是无法在设备上debug调试的!

Development和Production两个版本的code sign是不同的,前者是iPhone Developer,后者是iPhone Distribution。注意不能搞错。

无论是Development Push SSLCertificate还是Production Push SSL Certificate 都有过期时间的。Development Push SSL Certificate有效期三个月,而ProductionPush SSL Certificate的有效期是一年。需要注意在过期之前生成新的证书,以免影响使用。


服务器端发出的json包是有大小限制的,最大256字节,包括自定义字典集。
aps中的alert字符串里是可以添加"\n"做换行的。
json包中除了alert,badge,sound之外,还是是可以自定值的。
额外的自定义值:
  $payload['aps'] = array('alert' : 'This is the alert text', 'badge' : 1, 'sound' : 'default');
  $payload['server'] = array('serverId' : $serverId, 'name' : $name);
  $output = json_encode($payload);
  当用户按下“View”后,自定义server值将被传递到设备中的程序。JSON 值如下:
  {
  "aps" :
           { "alert" :
                      {
                        "action-loc-key" : "显示" ,
                        "body" : "This is the alert text"
                       },
             "badge" : 1,
             "sound" : "default" },
  "server" : { "serverId" : 1, "name" : "Server name")
  }
  256字节的限制适用于整个payload,包括自定义字典集。

  原生接口
  在Server Density中,一旦产生了一条提示,将建立一个payload并插入队列中。因此有必要时我们可以同时发送多个payload。
  Apple推荐使用这种方法,因为如果你在发送各payload时频繁连接和断开,APNS有可能会封锁你的IP。
  如Apple 描述:
  原生接口使用原生socket,具有二进制内容,采用数据流技术,不产生回馈。
分享到:
评论

相关推荐

    模拟iOS发送通知,验证push证书

    本文将深入探讨如何模拟iOS发送通知以及验证push证书的有效性,这对于iOS开发者来说是至关重要的。 首先,我们需要理解苹果的Push Notification Service(简称APNs),这是苹果提供的一个服务,用于向用户的iOS设备...

    JAVA IOS推送 javaPNS2.2与javaPNS2.2.1

    JavaPNS是Java平台上用于实现Apple Push Notification Service (APNS) 的一个开源库,主要用来向iOS设备发送推送通知。这个库的版本2.2和2.2.1是两个不同迭代的版本,可能包含了一些优化和修复了之前版本中的问题。...

    JAVA JavaPNS-2.2 实现iphone的推送通知

    JavaPNS是Java平台上用于实现Apple Push Notification Service (APNs)的一个开源库,版本2.2提供了对iPhone设备推送...通过深入理解和实践这些知识点,你将能够有效地使用JavaPNS-2.2为你的iOS应用实现推送通知功能。

    IOS push通知

    本文将深入探讨“iOS Push通知”的实现机制,包括苹果服务器的推送服务、代码实现以及相关环境配置。 首先,苹果提供的Push Notification Service (APNs) 是实现iOS设备上推送通知的核心。APNs是一个高效、可靠的...

    ios-tabBar 中间突出 push 方式 实现.zip

    3. 使用UINavigationController:为了实现push方式进入子控制器,我们需要在每个TabBar对应的UIViewController中嵌入UINavigationController。这样,当用户点击TabBar时,不是直接切换视图,而是通过...

    IOS滚动文本通知

    滚动文本通知的实现主要涉及到iOS的通知中心系统。当应用接收到新的数据或事件时,它可以通过苹果的本地通知框架或者远程推送通知服务向用户发送通知。以下是关于iOS滚动文本通知的一些关键知识点: 1. **通知中心*...

    ios 简单的push service代码

    本文将深入探讨iOS中的简单Push Service代码,包括其工作原理、实现方式以及如何集成到你的应用程序中。 首先,理解Push Notifications的基本概念至关重要。当你的iOS应用不在前台运行时,系统可以通过Apple Push ...

    JavaPNS_2.2.zip iphone push

    使用JavaPNS库,开发者可以轻松地将推送通知功能添加到他们的Java应用中,无论是独立应用还是后端服务器,都可以高效地向iOS设备发送通知。通过阅读提供的代码示例,结合JavaPNS的API文档,开发者能够快速掌握如何...

    仿ios滑动开关插件

    "仿ios滑动开关插件"就是一种为了实现iOS设备上经典滑动开关效果的软件组件。这种开关通常被称为UISwitch,在iOS系统中广泛用于二元选择,如开启/关闭设置或功能。在非iOS平台上,开发者可能会使用第三方插件来模拟...

    PhoneGap iOS 自定义插件

    PhoneGap iOS 自定义插件是移动应用开发中的一个重要概念,它允许开发者利用JavaScript与原生iOS平台进行交互,实现更高效、更丰富的功能。PhoneGap是一个开源框架,它基于Apache Cordova,允许开发者使用HTML、CSS...

    IOS PUSH DEMO

    【标题】"IOS PUSH DEMO" 是一个关于iOS设备推送通知的示例项目,它主要展示了如何使用Java来实现Apple Push Notification Service (APNS) 的功能。在iOS应用开发中,当用户不在应用中时,如果需要向他们发送消息...

    iOS push notification 文档

    本文档将详细介绍如何在iOS应用程序中使用Push Notification,包括工程的编写和服务器端的介绍。 一、创建SSL证书 为了使用Push Notification,需要创建一个App ID和关联的SSL证书。SSL证书是用于加密和身份验证的...

    php用于测试iospush通知推送的。

    php代码类,用于测试iospush通知的,欢迎大家下载使用,下载后不会使用,请查看我博客 php代码类,测试push通知的,运行直接php+文件路径

    移动应用(ios、android)插件化方案

    + Ios 平台插件化思路:使用 iOS 的插件机制,例如使用 iOS 的插件架构,来实现插件的管理和加载。 服务端整合——面向服务的后端平台 * 概述:面向服务的后端平台是指将服务端的功能抽象出来,形成一个统一的...

    iOS版微信抢红包插件(支持后台抢红包).zip

    iOS版微信抢红包插件(支持后台抢红包).zipiOS版微信抢红包插件(支持后台抢红包).zip iOS版微信抢红包插件(支持后台抢红包).zipiOS版微信抢红包插件(支持后台抢红包).zip iOS版微信抢红包插件(支持后台抢...

    ios 通知实现原理

    本篇将深入探讨iOS通知的实现原理,包括本地通知和远程推送通知,以及它们在模拟环境中的工作流程。 1. **本地通知(Local Notifications)** - **定义**:本地通知是由应用程序本身在特定时间点或基于特定条件...

    在存在iOS项目添加Cordova实现H5调用设备相册

    在iOS项目中集成Cordova并实现H5调用设备相册的功能,是移动应用开发中的一个常见需求。Cordova是一个开源框架,它允许开发者使用HTML、CSS和JavaScript来构建原生移动应用程序。通过Cordova,我们可以利用Web技术来...

    php ios push 脚本

    在IT行业中,推送服务是移动应用开发者不可或缺的一部分,特别是对于iOS平台的应用,为了实时通知用户,需要使用苹果的Push Notification Service(简称APNs)。而PHP作为广泛应用的服务器端脚本语言,可以用来创建...

    iOS使用UITableView实现的富文本编辑器

    iOS使用UITableView实现的富文本编辑器iOS使用UITableView实现的富文本编辑器iOS使用UITableView实现的富文本编辑器iOS使用UITableView实现的富文本编辑器iOS使用UITableView实现的富文本编辑器iOS使用UITableView...

    ios-左滑手势push控制器.zip

    本项目"ios-左滑手势push控制器.zip"主要关注如何通过屏幕左侧滑动手势来推动(push)新的UIViewController,实现一种类似原生iOS应用中的导航效果。这种交互方式常见于许多iOS应用中,例如邮件应用中浏览邮件列表时...

Global site tag (gtag.js) - Google Analytics