APNS消息推送(node.js实现)
一、 推送流程
步骤:
1.应用程序需要激活推送通知功能。在使用之前,用户需要确认他是否愿意接受这些推送功能。
2.IOS跟APNSServer要deviceToken,应用程序接到一个“devicetoken”。你可以认为“devicetoken”是推送通知发送信息的目的地址。
3.应用程序会将“devicetoken”发送给PUSH服务端程序(Provider)。
4.当你的应用程序发生了有趣的事情,你的服务器向“苹果推送通知的服务器(ApplePush Notification Service,缩写,APSN)”发送通知。
5.APNS服务将消息通知发送到用户的设备(例如,iPhone,iPad等)的应用程序。
备注:
产品发布APNS服务器,gateway.push.apple.com
测试APNS服务器,gateway.sandbox.push.apple.com
二、 获取证书,无论是客户端和APNS,还是Provider和APNS,都需要通过证书进行连接
提示:
(1)需要申请Apple开发者帐号,准备一台真实设备。模拟器没有DeviceToken,不能测试APNS;
(2)收到提醒时,如果程序在前台打开会看不到提醒。
1)在Apple开发者中心创建AppID
创建时勾选AppServices-PushNotifications。AppID Suffix选择通用AppID(Wildcard App ID)还是固定AppID(Explicit App ID)都可以,如果要开发多个App可以选择通用AppID。创建成功后在Identifiers-AppIDs可以查看,点击之前创建的AppID,在展开的菜单中点击[Settings]按钮进入配置界面。
在配置界面中找到PushNotifications,点击[CreateCertificate...]按钮创建SSL证书。DevelopmentSSL Certificate 和 ProductionSSL Certificate对应开发环境和生产环境,选择DevelopmentSSL Certificate。
备注:也可以点击左侧导航菜单的Certificates,来添加一个APNs证书。选择ApplePush Notification service SSL (Sandbox),之后的步骤相同。
2) 生成CSR(证书请求)文件
在Mac系统中打开实用工具-钥匙串-钥匙串访问-证书助理-从证书颁布机构请求证书