iOS静默通知

iOS静默通知

iOS Silent Notification(静默通知),属于特殊的远程推送通知,其目的不是为了弹出通知框提醒用户,而是用于后台运行的App和服务端同步数据。例:App在后台放置一段时间,网络已不再活跃,App内数据可能已经过时;服务端可推送一条携带参数的静默通知,处于后台的App可以触发静默通知回调,在后台运行状态下获取对应参数并发起网络请求,获取最新数据更新,整个过程用户无感知。

静默通知限制和注意事项:

  • 静默通知主要用于更新和同步数据,用户对其无感知,因此静默通知一般不设置通知内容、声音和角标;
  • 静默通知唤醒后台App并执行下载任务时,最多有30秒时间执行;
  • App处于前台/后台时均可触发对应通知回调,App关闭后不能触发;
  • 静默通知请求在APNs属于低优先级任务,苹果不保证静默通知的到达率;
  • 不要利用静默通知对App进行保活,APNs若检测到较高频率的静默通知发送请求,可能会终止其发送(具体策略苹果未公开)。

服务端配置

静默通知一般不设置推送内容、声音和角标,发送到APNs的payload格式如下,其中需要设定content-available1,标记为静默通知。

 
  1. {
  2. "aps": {
  3. "content-available" : 1
  4. },
  5. "key1" : "value1",
  6. "key2" : "value2"
  7. }

移动推送服务端发送静默通知,需要基于OpenAPI 2.0的推送高级接口

  • 接口描述参考OpenAPI 2.0 - API列表 - 推送高级接口
  • iOSSilentNotification设置为True时,表示使能静默通知;
    • 若通知内容字段Body为空串"",推送时忽略通知内容声音角标设置,推送一条用户无感知的静默通知;(建议使用方式
    • 若通知内容字段Body为非空串,通知内容声音角标都需要用户自行配置,用户可感知到该条静默通知。(不建议使用

客户端适配

静默通知回调处理:

  • 处理逻辑和普通通知回调一致;
  • < iOS 10,触发didReceiveRemoteNotification回调,参考iOS API介绍2.3 通知打开监听 - <iOS 10
  • >= iOS 10,App位于前台触发willPresentNotification回调,App位于后台触发didReceiveNotificationResponse回调,参考iOS API介绍2.3 通知打开监听 - iOS 10+

App若需要在后台处理静默通知,Xcode工程做以下修改:

  • Xcode中选中App对应Project,并选中对应iOS App Target;
  • 打开Capabilities Tab,使能Background Modes,并勾选Remote notifications

xcode-silent-notification-config

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值