极光推送是为 App 提供第三方推送服务的平台之一,它提供四种消息形式:通知,自定义消息,富媒体和本地通知。
笔者将基于官方说明与我的理解来谈一下这四种消息。本篇为 iOS 篇,Android 篇入口。ios
Push Notification,即指在手机的通知栏(状态栏)上会显示的一条通知信息。 iOS :JPush 代理 Apple 官方的 APNs 通知。
特别说明api
APNs 通知的流程是这样的服务器
注:咱们测试时若收不到消息,极光社区有总结一个完整的排查步骤,基本能够解决问题;若是本身排查不出,能够直接找官方帮忙查询,这里设备的 registrationID 和消息的 msgid 就是必须提供的信息。网络
APNs 通知的几个特色ide
willPresentNotification
方法,前台收到 APNs 通知后就会走这个方法。didReceiveNotificationResponse
方法(即后台收到通知后,点击通知的回调方法)。[[UIApplication sharedApplication] unregisterForRemoteNotifications];
进行关闭。"alert" : "hello, JPush!",
或者"alert" : { "title" : "JPush Title", "subtitle" : "JPush Subtitle" , "body" : "JPush Body" },
completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);
由 JPush iOS SDK 提供的应用内消息功能,此消息不通过 APNs 服务器,彻底由 JPush 提供功能支持。
几个特色测试
* 同时发内容同样的自定义消息和 APNs 通知消息(APNs 用来展现,自定义消息用来取数据) * 自定义消息中携带定义好的 extras ,客户端收到后根据事先设定的规则去设置一个本地通知,用本地通知来展现这条消息
msg_content
为空时,SDK 不会对消息进行广播,App 没法接收到推送的消息。networkDidReceiveMessage
,详细看官方文档说明。何时使用它?ui
能够推送 Web页面、图片、声音等除普通文本以外更丰富的内容。
仅支持 Android ,须要JPush Android SDK 1.8.0 及以上。lua
适用于在特定时间发出的通知,如一些Todo和闹钟类的应用,在每周、每个月固定时间提醒用户回到应用查看任务。
content.body = @"This is a test code";
推送自定义消息,触发本地通知去展现。spa
题外话代理
本文转自 末日云游-极光