NIMSDK-AOS  9.21.15
CustomNotification.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.msg.model;
2 
4 
5 import org.json.JSONException;
6 import org.json.JSONObject;
7 
8 import java.io.Serializable;
9 import java.util.Map;
10 
11 /**
12  * 自定义通知。<br>
13  * 区别于IMMessage,SDK仅透传该类型消息,不负责解析和存储。消息内容由第三方APP自由扩展。<br>
14  * 自定义通知消息可选择要不要发送给当前不在线的用户。<br>
15  */
16 public class CustomNotification implements Serializable {
17 
18  private String sessionId;
19 
20  private SessionTypeEnum sessionType;
21 
22  private String fromAccount;
23 
24  private long time;
25 
26  private String content;
27 
28  private boolean sendToOnlineUserOnly = true;
29 
30  private String apnsText;
31 
32  private Map<String, Object> pushPayload;
33 
34  private CustomNotificationConfig config;
35 
36  private NIMAntiSpamOption antiSpamOption;
37 
38  private String env;
39  /**
40  * 获取聊天对象的Id(好友帐号,群ID等)。
41  *
42  * @return 聊天对象ID
43  */
44  public String getSessionId() {
45  return sessionId;
46  }
47 
48  /**
49  * 设置聊天对象ID。
50  *
51  * @param sessionId 聊天对象ID
52  */
53  public void setSessionId(String sessionId) {
54  this.sessionId = sessionId;
55  }
56 
57  /**
58  * 获取会话类型。
59  *
60  * @return 会话类型
61  */
63  return sessionType;
64  }
65 
66  /**
67  * 设置会话类型。
68  *
69  * @param sessionType 会话类型
70  */
71  public void setSessionType(SessionTypeEnum sessionType) {
72  this.sessionType = sessionType;
73  }
74 
75  /**
76  * 获取该通知的发出者帐号。
77  *
78  * @return 发出者帐号
79  */
80  public String getFromAccount() {
81  return fromAccount;
82  }
83 
84  /**
85  * 设置该通知的发起者帐号
86  *
87  * @param fromAccount 发起者帐号
88  */
89  public void setFromAccount(String fromAccount) {
90  this.fromAccount = fromAccount;
91  }
92 
93  /**
94  * 获取消息时间,单位为ms
95  */
96  public long getTime() {
97  return time;
98  }
99 
100  /**
101  * 设置消息时间
102  */
103  public void setTime(long time) {
104  this.time = time;
105  }
106 
107  /**
108  * 获取消息具体内容。
109  */
110  public String getContent() {
111  return content;
112  }
113 
114  /**
115  * 设置消息内容。
116  */
117  public void setContent(String content) {
118  this.content = content;
119  }
120 
121  /**
122  * 该消息是否只发送当前在线的用户/群组。
123  */
124  public boolean isSendToOnlineUserOnly() {
125  return sendToOnlineUserOnly;
126  }
127 
128  /**
129  * 设置该消息是否只发送给当前在线的用户。<br>
130  * 如果该值为true,只有接收方当前在线时,才能收到该消息。<br>
131  * 如果该值为false,如果接收方当前在线,会立即收到该消息,如果不在线,会在下一次登录后收到该消息。
132  * 设置为false后,该消息和普通IM消息一样保证必达。<br>
133  *
134  * @param sendToOnlineUserOnly 是否只发送给在线用户/群组,云信SDK 4.1版本开始支持群组离线自定义通知.
135  */
136  public void setSendToOnlineUserOnly(boolean sendToOnlineUserOnly) {
137  this.sendToOnlineUserOnly = sendToOnlineUserOnly;
138  }
139 
140  /**
141  * 获取如果接收方是iOS设备登录,该消息的APNS推送文本内容
142  *
143  * @return apns推送文本设置
144  */
145  public String getApnsText() {
146  return apnsText;
147  }
148 
149  /**
150  * 设置如果接收方是iOS设备登录,该消息的APNS推送文本内容
151  *
152  * @param apnsText apns推送文本设置
153  */
154  public void setApnsText(String apnsText) {
155  this.apnsText = apnsText;
156  }
157 
158  /**
159  * 获取第三方自定义的推送属性
160  *
161  * @return 第三方自定义的推送属性Map
162  */
163  public Map<String, Object> getPushPayload() {
164  return pushPayload;
165  }
166 
167  /**
168  * 设置第三方自定义的推送属性
169  *
170  * @param pushPayload 第三方自定义的推送属性Map,开发者需要保证此Map能够转换为JsonObject,属性内容最大长度2048字节
171  */
172  public void setPushPayload(Map<String, Object> pushPayload) {
173  this.pushPayload = pushPayload;
174  }
175 
177  return config;
178  }
179 
180  public void setConfig(CustomNotificationConfig config) {
181  this.config = config;
182  }
183 
184  /**
185  * 获取反垃圾配置
186  *
187  * @return
188  */
190  return antiSpamOption;
191  }
192 
193  /**
194  *设置反垃圾配置项
195  *
196  * @param antiSpamOption
197  */
198  public void setNIMAntiSpamOption(NIMAntiSpamOption antiSpamOption) {
199  this.antiSpamOption = antiSpamOption;
200  }
201 
202  /**
203  * 获取环境变量
204  * 用于指向不同的抄送,第三方回调等配置
205  *
206  * @return 环境变量
207  */
208  public String getEnv() {
209  return this.env;
210  }
211 
212  /**
213  * 设置环境变量
214  * 用于指向不同的抄送,第三方回调等配置
215  *
216  * @param env 环境变量
217  */
218  public void setEnv(String env) {
219  this.env = env;
220  }
221 
222  public JSONObject toJsonObj() {
223  JSONObject obj = new JSONObject();
224  try {
225  obj.putOpt("sessionId", sessionId);
226  obj.putOpt("sessionType", sessionType);
227  obj.putOpt("fromAccount", fromAccount);
228  obj.putOpt("time", time);
229  obj.putOpt("content", content);
230  obj.putOpt("sendToOnlineUserOnly", sendToOnlineUserOnly);
231  obj.putOpt("apnsText", apnsText);
232  obj.putOpt("pushPayload", pushPayload);
233  obj.putOpt("config", config);
234  obj.putOpt("antiSpamOption", antiSpamOption);
235  obj.putOpt("env", env);
236  } catch (JSONException e) {
237  e.printStackTrace();
238  }
239  return obj;
240  }
241 }
void setPushPayload(Map< String, Object > pushPayload)
设置第三方自定义的推送属性
SessionTypeEnum getSessionType()
获取会话类型。
String getSessionId()
获取聊天对象的Id(好友帐号,群ID等)。
String getApnsText()
获取如果接收方是iOS设备登录,该消息的APNS推送文本内容
void setApnsText(String apnsText)
设置如果接收方是iOS设备登录,该消息的APNS推送文本内容
String getFromAccount()
获取该通知的发出者帐号。
Map< String, Object > getPushPayload()
获取第三方自定义的推送属性
void setContent(String content)
设置消息内容。
void setConfig(CustomNotificationConfig config)
void setSendToOnlineUserOnly(boolean sendToOnlineUserOnly)
设置该消息是否只发送给当前在线的用户。 如果该值为true,只有接收方当前在线时,才能收到该消息。 如果è¯...
void setFromAccount(String fromAccount)
设置该通知的发起者帐号
NIMAntiSpamOption getNIMAntiSpamOption()
获取反垃圾配置
long getTime()
获取消息时间,单位为ms
void setEnv(String env)
设置环境变量 用于指向不同的抄送,第三方回调等配置
void setSessionType(SessionTypeEnum sessionType)
设置会话类型。
自定义通知。 区别于IMMessage,SDK仅透传该类型消息,不负责解析和存储。消息内容由第三方APP自由扩展。 ...
boolean isSendToOnlineUserOnly()
该消息是否只发送当前在线的用户/群组。
void setNIMAntiSpamOption(NIMAntiSpamOption antiSpamOption)
设置反垃圾配置项
void setSessionId(String sessionId)
设置聊天对象ID。
String getEnv()
获取环境变量 用于指向不同的抄送,第三方回调等配置