实现iOS消息推送

本文详细介绍了如何实现iOS消息推送,包括消息推送过程、开发前的准备(注册应用ID、生成推送证书、生成Provisioning Profiles)、客户端和服务端的开发流程,以及Payload的简介。在准备阶段,重点讲述了在Apple Developer Member Center中注册应用ID、申请推送证书和Provisioning Profiles的步骤。客户端开发涉及推送权限申请和接收通知的方法。服务端则演示了使用javapns库发送推送消息。最后,解释了Payload的结构和特性。
摘要由CSDN通过智能技术生成

消息推送过程

APNS

  1. 应用启动时,调用registerUserNotificationSettings:方法与Apple的APNS服务器通信,并注册推送服务。注册成功后,系统会调用应用的didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken方法。其中,deviceToken参数是APNS返回的deviceToken(用来唯一标识一个设备,每个设备上的每个应用的deviceToken都不相同)。在这里,我们需要将这个deviceToken上传到我们自己的服务器中,用来向指定设备发送push消息。

  2. 服务端拿到这个deviceToken后,使用我们申请好的证书和这个deviceToken,向Apple的APNS服务器发送一个JSON串,这个JSON串中包含我们要向iOS设备发送的内容。

  3. APNS服务器收到这个JSON串,并向deviceToken指定的设备发送消息,iOS应用收到消息后,会调用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo方法。

  4. APNS发送完消息后,将消息是否推送成功的状态反馈给我们的服务端。

开发前的准备

这里的准备主要是需要从Apple开发者中心注册好应用ID并申请相应的证书。

注册应用ID

  1. 打开Apple developer member center,如下图所示,点击红框里面的那一项。
    member center
  2. 点击左侧的Identifiers下的App IDs项,如下图所示,然后点击右上角的加号。
    App IDs
  3. 在下图的Name一栏里填入应用名字(可以跟你的iOS应用名字不同)。
    App Name
  4. 继续往下拉,选中App ID Suffix项的Explicit App ID,在Bundle ID栏里填入你的应用的Bundle ID(需要跟你的应用的Bundle Identifier相同)。
    Bundle ID
  5. 不要忘记在下面的App Services里面勾选上Push Notification(不勾选不能使用推送服务)。
    Push Notification
  6. 继续点击Continue,在新页面中点击submit,最终出现下面的页面,点击Done完成创建应用。
    App Done

生成推送证书

  1. 打开Mac上的钥匙串访问应用,在左上角的状态栏中的钥匙串访问项中选择证书助理,再选择从证书颁发机构请求证书
    Key Acess
  2. 打开如下图界面后,在用户电子邮件地址栏中填入Apple开发者账号的电子邮件地址,常用名称中填入一个名字,这里起Push
    Register CSR
  3. 选择保存到磁盘。
  4. 然后点击继续,将证书保存到桌面的push文件夹中。
  5. 现在,push文件夹中有了一个CertificateSigningRequest.certSigningRequest的文件。
  6. 继续回到member center中,在左侧选择Certificates下的All,点击右上角的加号。
    Cert Select
  7. 在证书类型选择那里像下图那样选择(这里申请的是开发测试证书,正式发布产品的话选择下面Product栏里的证书)。
    Cert SandBox
  8. 在下面的App ID项里选择刚才创建的App ID。
    Cert App ID
  9. Upload CSR file那里选择选择刚才保存在桌面的p
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值