版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.06.10 |
前言
很多app种都集成环信做第三方信息通讯工具,这里我们就看一下环信的主要功能和集成方法。先给出环信3.0的地址。
感兴趣的可以参考:
1. 环信ios客户端的集成(一)
2. 环信ios客户端的集成(二)
3. 环信ios客户端的集成(三)
4. 环信ios客户端的集成(四)
5. 环信ios客户端的集成(五)
6. 环信ios客户端的集成(六)
7. 环信ios客户端的集成(七)
8. 环信ios客户端的集成(八)
9. 环信ios客户端的集成(九)
10. 环信ios客户端的集成(十)
11. 环信ios客户端的集成(十一)
这一篇主要说一下环信的 APNS 内容解析
一、单聊
1.不显示详情
{
"aps":{
"alert":"您有一条新消息",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"m":"14aec1e00ef"
}
- alert: 显示信息
- badge: 角标,表示离线消息数
- sound: 收到 APNS 时的提示音
- f: 消息发送方的环信 ID
- t: 消息接收方的环信 ID
- m: 消息 ID
2.显示详情
{
"aps":{
"alert":"ApnsName:xxxx",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"m":"14aec1e00ef"
}
- alert: 显示信息
- ApnsName: 发送方设置的用户名(即环信管理后台中看到的用户昵称)
- xxxx: 消息内容(发送方发的什么,就显示什么)
- badge: 角标,表示离线消息数
- sound: 收到 APNS 时的提示音
- f: 消息发送方的环信 ID
- t: 消息接收方的环信 ID
- m: 消息 ID
二、群聊
1.不显示详情
{
"aps":{
"alert":"您有一条新消息",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"g":"1421300621769",
"m":"14aec1e00ef"
}
- alert: 显示信息
- badge: 角标,表示离线消息数
- sound: 收到 APNS 时的提示音
- f: 消息发送方的环信 ID
- t: 消息接收方的环信 ID
- g: 群组 ID
- m: 消息 ID
2.显示详情
{
"aps":{
"alert":"ApnsName:xxxx",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"g":"1421300621769",
"m":"14aec1e00ef"
}
- alert: 显示信息
- ApnsName: 发送方设置的用户名(即环信管理后台中看到的用户昵称)
- xxxx: 消息内容(发送方发的什么,就显示什么)
- badge: 角标,表示离线消息数
- sound: 收到 APNS 时的提示音
- f: 消息发送方的环信 ID
- t: 消息接收方的环信 ID
- g: 群组 ID
- m: 消息 ID
三、向 APNS 中添加扩展字段(em_apns_ext)
APNS扩展:添加后,您收到的 APNS 中将带有您填写的字段,可以帮助您区分 APNS。
1.解析内容
{
"aps":{
"alert":"您有一条新消息",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"e":"扩展内容",
"m":"14aec1e00ef"
}
- e: 您发送的自定义内容
2.发送扩展
REST 发送
(REST 发消息)
{
"target_type":"users",
"target":[
"6006"
],
"msg":{
"type":"txt",
"msg":"hello from rest"
},
"from":"6001",
"ext":{
"em_apns_ext":"扩展内容"
}
}
iOS 发送
(iOS 发消息)
EMChatText *txt = [[EMChatText alloc] initWithText:@"test"];
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithChatObject:txt];
EMMessage *msg = [[EMMessage alloc] initWithReceiver:@"6001" bodies:@[body]];
// 设置自定义扩展字段
msg.ext = @{@"em_apns_ext":@"扩展内容"};
// 发送消息
[[EaseMob sharedInstance].chatManager asyncSendMessage:msg progress:nil];
四、 发送静默消息(不发APNS,em_ignore_notification)
发送时添加后,该消息将不会有 APNS 推送。
REST 发送
(REST 发消息)
{
"target_type":"users",
"target":[
"6006"
],
"msg":{
"type":"txt",
"msg":"hello from rest"
},
"from":"6001",
"ext":{
"em_ignore_notification":true
}
}
iOS 发送
(iOS 发消息)
EMChatText *txt = [[EMChatText alloc] initWithText:@"test"];
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithChatObject:txt];
EMMessage *msg = [[EMMessage alloc] initWithReceiver:@"6001" bodies:@[body]];
// 设置自定义扩展字段
msg.ext = @{@"em_ignore_notification":@YES};
// 发送消息
[[EaseMob sharedInstance].chatManager asyncSendMessage:msg progress:nil];
五、 设置强制推送型 APNS(em_force_notification)
设置后,将强制推送消息,即使客户端设置了免打扰时间,也会得到推送。优先级比 em_ignore_notification 低,即同时设置 em_ignore_notification 后,该属性将失效。
REST 发送
(REST 发消息)
{
"target_type":"users",
"target":[
"6006"
],
"msg":{
"type":"txt",
"msg":"hello from rest"
},
"from":"6001",
"ext":{
"em_force_notification":true
}
}
iOS 发送
(iOS 发消息)
EMChatText *txt = [[EMChatText alloc] initWithText:@"test"];
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithChatObject:txt];
EMMessage *msg = [[EMMessage alloc] initWithReceiver:@"6001" bodies:@[body]];
// 设置自定义扩展字段
msg.ext = @{@"em_force_notification":@YES};
// 发送消息
[[EaseMob sharedInstance].chatManager asyncSendMessage:msg progress:nil];
六、 自定义显示
设置后,您收到的 APNS 的 alert 信息将是您设置的信息。
解析
{
"aps":{
"alert":"自定义信息",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"m":"14aec1e00ef"
}
REST 发送
(REST 发消息)
{
"target_type":"users",
"target":[
"6006"
],
"msg":{
"type":"txt",
"msg":"hello from rest"
},
"from":"6001",
"ext":{
"em_apns_ext":{
"em_push_title":"自定义信息"
}
}
}
iOS 发送
(iOS 发消息)
EMChatText *txt = [[EMChatText alloc] initWithText:@"test"];
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithChatObject:txt];
EMMessage *msg = [[EMMessage alloc] initWithReceiver:@"6001" bodies:@[body]];
// 设置自定义扩展字段
msg.ext = @{@"em_apns_ext":@{@"em_push_title":@"自定义信息"}};
// 发送消息
[[EaseMob sharedInstance].chatManager asyncSendMessage:msg progress:nil];
七、自定义显示与自定义扩展同时发给对方
解析
{
"aps":{
"alert":"自定义信息",
"badge":1,
"sound":"default"
},
"f":"6001",
"t":"6006",
"m":"14aec1e00ef",
"e":"扩展内容"
}
REST 发送
(REST 发消息)
{
"target_type":"users",
"target":[
"6006"
],
"msg":{
"type":"txt",
"msg":"hello from rest"
},
"from":"6001",
"ext":{
"em_apns_ext":{
"em_push_title":"自定义信息",
"extern": "扩展内容"
}
}
}
iOS 发送
(iOS 发消息)
EMChatText *txt = [[EMChatText alloc] initWithText:@"test"];
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithChatObject:txt];
EMMessage *msg = [[EMMessage alloc] initWithReceiver:@"6001" bodies:@[body]];
// 设置自定义扩展字段
msg.ext = @{@"em_apns_ext":@{@"em_push_title":@"自定义信息",@"extern":@"扩展内容"}};
// 发送消息
[[EaseMob sharedInstance].chatManager asyncSendMessage:msg progress:nil];
后记
未完,待续~~~