1、 Device token(设备令牌)概念:
这周在学习苹果的消息推送(Apple Push Notification),官方画的流程图很清晰,但是对里面的一个概念 device token 却语焉不详。
读完冗长的文档,唯一有用的却是一个注意事项:
An application should register [with APN servers] every time it launches and give its provider the current token.每次应用被打开时,开发者都要重新收集当前设备的 device token,因为它可能变了哦。
stackoverflow 针对Device token 什么时候会发生变化有个很棒的解答。
在一台设备中, device token 是系统级别的,不同 App 获得的 device token 是相同的。
假如我的手机安装了 Angry Bird 和 Evernote ,这两个应用获得 device token 一模一样。
device token 并不会因为单个 app 的更新而发生改变。
假如我的 iPhone 升级了最新版的愤怒的小鸟,这并不会导致我 device token 的改变。
假如我的 iPhone 从 backup 中恢复数据,device token 不会发生变化。
用户抹除 iPhone 的数据时,意味着要与这台手机撇清关系,比如出售或者送人。此时为了保护隐私,device token 会改变。
在需要发送push时,我们的服务端就会取出要发送的设备的device token,然后以如下方式组成特定结构字符串,然后发送至APNs
2、以下为我集成时的问题与解决方案:
问题
1、iOS通知,在官网后台怎么推送,不能单独推送通知?
iOS只能透传消息
2、如果应用在前台处于运行状态,是不是不走APNs
这个是怎么实现的?实时监控应用是否在线?
判断clientid和个推服务器的连接状态简单说就是客户端sdk和个推服务器
是否是连接状态的
3、字符串 字典 远程通知 区别 使用场景?
字符串是apn的简单推送,字典和远程通知是apn的高级推送
字符串和字典会有apn通知栏提示,远程通知没有
4、为了更好支持SDK推送,APP定期抓取离线数据,需要配置后台运行权限:Backgound fetch:后台获取
Remote notifications: 推送唤醒(静默推送,Silent