先描述下基本概念,标准的iPhone应用是没有后台运行的,要实现实时推送消息到手机,需要借助Apple提供的APNS服务。
iPhone会和APNS服务器保持长连接,每台iPhone针对每个App都会有一个唯一Token,要向一台手机发送即时消息,需要自己的服务器和APNS服务器建立连接,然后将信息(Payload)和要发往的设备Token发送给APNS服务器,剩下的推送就交给Apple了。
详细的官方文档:《Local and Push Notification Programming Guide》
以下是大杂烩:
- 不要用一个开源的叫javapns的lib来推送,这个项目代码臃肿混乱,过度设计,还内存溢出;可以使用notnoop.apns
- Push会延时,也会被丢弃,似乎网络情况,Push本身带有Expiry,超过该值APNS会丢掉Push
- Push有三个基本属性,alert、badge、sound,通过将一些置空,可以实现只修改App上的气泡不出现文本、出现文本但不提示声音,发出声音而不出现任何提示等等效果
- Push除了三个基本属性,还可以附带任意json数据,但总大小不能超过256字节
- 要异步发送Push,可以将应用内的Push序列化到Redis队列再消费,并且增加队列监控
- 和国外服务的连接速度比较慢,要建立多个连接,使用多线程发送
- APNS有提供feedback服务,用于查询一个Token是否有效
- 一台iPhone上的一个App会有两种Token,一种是Developer的,一种是正式Product的,不能混用,在一个与APNS的SSL连接里,使用Developer Token向Product发送Push是无法送达的,同时在十几秒内即使用正确的Product Token发送也无法送达,效果就像直接丢弃
- iPhone上的App处于前台运行时,即使受到Push也不会在界面出现提示,此时App内的回调函数会收到
- 高速地向一台设备发送大量Push,Apple会自动丢掉部分Push
相关推荐
### Apple Push Notification Service (APNS) 简介 #### 一、APNS 概述 Apple Push Notification Service(简称 APNS)是苹果公司提供的一种推送通知服务,它允许开发者向用户设备上的应用发送实时更新的信息。...
在Android平台上,实现即时通知通常会借助Google的云消息推送服务(Google Cloud Messaging,简称GCM),但在iOS系统中,对应的则是Apple Push Notification service(APNs)。然而,这里提到的"android apns"可能是...
围绕 Apple Push Notification Service 和 Google Cloud Messaging Service 的简单 HTTP 包装器 安装 安装 Node.js(0.10.x,不是 0.11.x) 安装Redis 克隆源 运行npm install 运行 Pushlet $ 节点pushlet.js ...
首先,我们需要明白APNS(Apache Push Notification Service)并不是Android系统的官方服务,而是通常指苹果的Push Notification Service。然而,在这里,“apns”标签可能是开发者为了表示类似功能的一个简称,或者...
用于与Apple Push Notification Service(APN)交互的Python库 安装 从GitHub下载源代码或使用easy_install: $ easy_install apns 样品用法 import time from apns import APNs , Frame , Payload apns = APNs ( ...
这是一个用于与Apple Push Notification Service(APNS)进行交互的小型C ++ 11项目。 您可以将推送通知发送到iOS设备或Safari浏览器(仅适用于OS X 10.9)。 它还处理反馈服务。 安装 首先在global.hpp中设置证书...
Erlang库,用于使用Apple Push Notification Service。 。 。 。 如何使用 在您的rebar.config中设置依赖项: {deps, [ {dp_push, ".*", {git, "https://github.com/yzh44yzh/dp-push.git", "v1.0"}} ]}. ...
Laravel 提供了一个方便的工具来处理这一过程,特别是与 Apple Push Notification Service (APNS) 和 Google Cloud Messaging (GCM) 集成。 首先,我们需要安装 "laravel-push-notification" 扩展包。在 Laravel ...
apns Go程序包可与Apple Push Notification Service交互特征该库实现了一些我们在其他任何一个库中都找不到的功能: 客户端寿命长-Apple的文档说,您应该保持而不是为每个有效负载创建新的连接新协议的使用-Apple...
PyAPNs2 用于通过HTTP / 2协议与Apple Push Notification Service(APN)进行交互的Python库安装从GitHub下载源代码或使用pip: $ pip install apns2样品用法 from apns2 . client import APNsClientfrom apns2 . ...
6. 在你的App ID下面找到Configure,选中,勾选“Enable for Apple Push Notification service”,然后点击Development Push SSL Certificate下面的Configure。 7. 点击Continue继续,然后点击Choose File,选中刚...
无间隙具有连接池的独立Apple Push Notification Service 该软件包内置到一个独立的应用程序中,该应用程序侦听服务器(使用软件包)以推送任何消息。 Gapless使用池来与Apple推送通知服务器建立多个连接。 这样可以...
推杆OS X和iOS应用程序和框架可与Apple Push Notification Service(APN)一起使用安装使用安装Mac应用程序: brew cask install pusher 或下载最新的Pusher.app二进制文件:另外,您可以使用将包括: pod 'NWPusher...
n Apple推送通知服务(APN)的调试应用程序。特征轻松地将推送通知发送到APNS(Apple推送通知服务)(根本不需要配置) 加载/保存文档,包括令牌和JSON负载直接从钥匙串中获取证书自动获取设备令牌; 无需再通过日志...
在Android平台上,推送通知(Push Notification)是一种高效且节省资源的方式,用于向用户发送应用程序相关的实时信息,即使应用并未在前台运行。这个“android push notification 下载即可运行”项目表明,它提供了...
本文将详细介绍如何实现Android Push Notification,包括服务器端(Server)和客户端(Client)的设置以及操作配置流程。 1. 服务器端(Server)实现 服务器端负责发送推送通知到Google的云消息服务(GCM,现在...
Laravel Push Notification是Laravel框架的一个扩展包,它允许开发者轻松地向移动设备(如Apple Push Notifications (APN)、Google Cloud Messaging (GCM)、Windows Push Notification (WPN)以及BlackBerry设备)...
在iOS开发中,Push Notification Service(简称PNS)是一种苹果提供的服务,允许应用程序在后台接收来自服务器的消息。本文将深入探讨iOS中的简单Push Service代码,包括其工作原理、实现方式以及如何集成到你的应用...
在iOS应用开发过程中,开发者可能遇到一种常见的错误提示——"Missing Push Notification Entitlement",这意味着在你的应用中包含了用于Apple Push Notification service (APNs) 的API,但是缺少了必要的权限设置,...
Apple Push Notification Service (APNs) 是苹果公司提供的一项服务,允许开发者向运行iOS、iPadOS、watchOS、macOS以及tvOS的应用程序发送实时的通知。在这个场景中,我们讨论的是一个名为“pu.sh”的Bash脚本,它...