iOS学习--远程推送

1.远程推送的详细描述

不使用第三方推送的原因:

             1.只能给客户端发送推送,平台web不能发送。

             2.我们考虑到使用太多第三方平台,会导致app产生强大的依赖,后期运维成本过高

故使用自定义推送

 

2.远程推送的步骤:

从我们公司的服务器生成推送,在使用APNs推送给用户

1.设置远程推送服务器

         有几个关键的组件:团队的服务器、APNs、我们的设备、安装在用户设备上的app

         从我们的服务器开始决定什么时候要发送推送。在该发请求的时候,服务器生成一个请求包含通知内容以及用户设备的device token。接着把这个请求发送给APNs,他们会处理发送推送给特定用户的设备的事情。在接收到通知,设备等莪操作系统会处理用户交互以及分发通知给你的app

2.我们app注册一个devicetoken用来识别我们的app,用来和APNs交流

使用苹果提供的跨平台iOS与tvOS都可以使用的API首先请求registerForRemoteNotifications,收到token之后调用代理方法didRegisterForRemoteNotificationsWithDeviceToken

这个devicetoken对于你的app和设备两个独一无二的,另外一个app的device token都不是同一个.

我们的app支持push notification.并且我们的开发者账户中,也必须有一个推送服务通知服务对应我们的app id

3.和APNs建立一个可信任的连接 

我们的服务器和APNs必须建立一个安全的连接,在我们的服务器上需要安装全局CA根证书,这个根证书在mac操作系统的钥匙串中。为了发送通知,我们服务器这端与APNs使用HTTP/2和TLS建立一个基于token或基于证书的信任。我们使用了基于证书的信任

因为我们目前只有一个app,所以使用证书比较方便。如果是多个app,则需要分开创建多个证书,所以使用基于token的信任比较好。

这个TLS建立过程如下图所示:

如果我们的证书失效了,这个连接就会中断。证书有效期一年的时间,所以我们需要提前重新申请证书

4.理解APNs提供了什么

  • APNs 致力于准确的给用户发送通知,并给用户带来最棒的体验,安卓用的通知框则需要手动加入。

  • APNs管理了一个与用户设备可信任的、加密的持续的IP连接

  • APNs合并了相同标识符的通知

  • 设备离线的时候APNs也可以存储和发送通知

5.查看苹果官方文档,如何实现远程推送

  1. 询问用户:是否授权能发送推送给用户,即使不在运行状态或是在后台。将询问结果存储起来,发给后台。个人中心模块有权限再次改变推送状态

  2. 可以通过getNotificationSetting查看setting的状态,更好的提高用户体验(比如只要alert,或是需要角标与声音)

  3. 设置UNUserNotificationCenterDelegate的代理,用户通知中心会调用这个方法在合适的时间(含有3个可选的代理方法 处理用户对推送的回复、app运行时在前台时如何处理这个通知、现实通知设置)

  4. 在UNNotificationSettings中管理与通知有关的设置和app授权状态

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值