前言
项目中采用了极光推送,因为Android官方消息中心服务在国内无法使用,为了保证推送到达率还需要集成各个厂商渠道的推送服务,这一部分我们直接使用极光的相关厂商的SDK可以省去一些麻烦。
注意点
极光推送提供了三种集成方式:手动配置集成;mavenCentral 自动化集成;组装服务集成。
注意区分哪些设置是哪种方式,遇到问题,一定在使用的方式内部的步骤上找问题,别看乱了集成方式。
选定一种集成方式按照文档一步一步集成下去,一定可以走通的,实在过不去找官方的技术支持是最快的解决问题的办法(登录账号到推送消息,新建推送消息页面就有技术支持)。
极光后台发送通知
配置好信息之后,在推送记录的通知详情->消息体,可以看到本条通知的数据格式及内容:
栗子:
- Android:
{
"send_source": 1,
"audience": "all",
"errno": 0,
"inapp_message": {
"inapp_message": false
},
"is_vip": 0,
"a_total_user": 1,
"receive_time": 1635307991,
"q_total_user": 0,
"w_total_user": 0,
"itime": 1635307991,
"i_total_user": 0,
"platform": [
"android"
],
"push_type": 1,
"data_msgtype": 1,
"notification": {
"alert": "越南红心火龙果32元/件,福建大红柚1.49元/斤,四川爱媛38号33.5元/件等,实惠尽在翠鲜缘!",
"android": {
"alert": "越南红心火龙果32元/件,福建大红柚1.49元/斤,四川爱媛38号33.5元/件等,实惠尽在翠鲜缘!",
"style": 0,
"category": "",
"priority": 0,
"title": "冲榜赔钱卖",
"alert_type": 7
}
},
"request_time": 1635307991851,
"total_user": 1,
"api_type": 32,
"options": {
"third_party_channel": {
"huawei": {
"distribution": "jpush"
},
"xiaomi": {
"distribution": "jpush"
}
},
"apns_production": false,
"time_to_live": 86400,
"sendno": "1635300369"
},
"appkey": "***************",
"client_ip": "xxx.xxx.xxx.xxx",
"msg_id": "***************"
}
- IOS
{
"send_source": 1,
"audience": "all",
"errno": 0,
"inapp_message": {
"inapp_message": false
},
"is_vip": 0,
"a_total_user": 0,
"receive_time": 1635307966,
"q_total_user": 0,
"w_total_user": 0,
"itime": 1635307966,
"i_total_user": 1,
"platform": [
"iOS"
],
"push_type": 1,
"data_msgtype": 1,
"notification": {
"ios": {
"badge": "1",
"alert": {
"body": "越南红心火龙果32元/件,福建大红柚1.49元/斤,四川爱媛38号33.5元/件等,实惠尽在翠鲜缘!",
"title": "冲榜赔钱卖"
},
"sound": "default",
"mutable-content": 1
}
},
"request_time": 1635307966885,
"total_user": 1,
"api_type": 32,
"options": {
"apns_production": true,
"time_to_live": 86400,
"sendno": "1635300383"
},
"appkey": "**********************",
"client_ip": "xxx.xxx.xxx.xxx",
"msg_id": "*********************"
}
可以看到数据格式略有不同。这部分的数据结构和字段意义是极光官方的设置,用来统一标示推送消息的一些内容,而我们自定义的一些和平台业务相关的字段会通过其他字段获取,见后面。
这两部分的文档综合起来看,通过和官方技术沟通,Android SDK集成文档中的关于拉起APP到指定页面的一些说明不是最新的,这部分和各个字段的含义通过API的文档可以看到说明。