NIMSDK-AOS  9.19.0
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()
获取环境变量 用于指向不同的抄送,第三方回调等配置