NIMSDK-AOS  9.19.0
QChatLoginParam.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.qchat.param;
2 
3 import android.text.TextUtils;
4 
5 import androidx.annotation.NonNull;
6 
7 import com.netease.nimlib.SDKCache;
9 
10 import java.util.List;
11 
12 /**
13  * "圈组登录"接口入参
14  */
15 public class QChatLoginParam {
16 
17  /**
18  * 圈组登录独立模式回调
19  */
20  public interface QChatLoginCallback {
21 
22  /**
23  * 获取link地址列表
24  * @param account 账户名
25  * @return
26  */
27  List<String> getQChatLinkAddresses(final String account);
28  }
29 
30  /**
31  * 独立模式获取link地址列表回调
32  */
33  private final QChatLoginCallback loginCallback;
34 
35  /**
36  * 用户名
37  */
38  private final String account;
39 
40  /**
41  * 登录token
42  */
43  private final String token;
44  /**
45  * appkey 目前只支持传和IM模块相同的AppKey
46  */
47  private String appKey;
48  /**
49  * 鉴权方式,0表示最初的loginToken的校验方式,1表示基于appSecret计算的token鉴权方式,默认0
50  */
51  private final QChatAuthType authType;
52  /**
53  * 登录自定义字段,用于提交给用户的第三方回调服务进行登录检测,不会同步给其他端
54  */
55  private String loginExt;
56  /**
57  * 自定义客户端类型
58  */
59  private Integer customClientType;
60  /**
61  * 自定义推送文案类型
62  */
63  private String customPushContentType;
64  /**
65  * 客户端自定义tag,登录时多端同步改字段
66  */
67  private String customTag;
68 
69 
70  /**
71  * 获取appKey
72  *
73  * @return
74  */
75  public String getAppKey() {
76  return appKey;
77  }
78 
79 
80  /**
81  * 获取用户账号
82  *
83  * @return 账号
84  */
85  public String getAccount() {
86  return account;
87  }
88 
89  /**
90  * 获取用户token
91  *
92  * @return 登录口令
93  */
94  public String getToken() {
95  return token;
96  }
97 
98  /**
99  * 获取鉴权方式
100  * @return
101  */
102  @NonNull
104  return authType;
105  }
106 
107  /**
108  * 获取登录自定义字段
109  * @return
110  */
111  public String getLoginExt() {
112  return loginExt;
113  }
114 
115  /**
116  * 设置登录自定义字段
117  * @param loginExt
118  */
119  public void setLoginExt(String loginExt) {
120  this.loginExt = loginExt;
121  }
122 
123  /**
124  * 获取自定义客户端类型
125  * @return
126  */
127  public Integer getCustomClientType() {
128  return customClientType;
129  }
130 
131  /**
132  * 设置自定义客户端类型
133  * @param customClientType
134  */
135  public void setCustomClientType(int customClientType) {
136  this.customClientType = customClientType;
137  }
138 
139  /**
140  * 获取自定义Tag
141  * @return
142  */
143  public String getCustomTag() {
144  return customTag;
145  }
146 
147  /**
148  * 设置自定义Tag
149  * @param customTag
150  */
151  public void setCustomTag(String customTag) {
152  this.customTag = customTag;
153  }
154 
155  /**
156  * 获取自定义推送文案类型
157  * @return
158  */
159  public String getCustomPushContentType() {
160  return customPushContentType;
161  }
162 
163  /**
164  * 设置自定义推送文案类型,离线推送不显示详情时,要显示的文案对应的类型名称
165  * @param customPushContentType
166  */
167  public void setCustomPushContentType(String customPushContentType) {
168  this.customPushContentType = customPushContentType;
169  }
170 
171  /**
172  * 获取圈组登录独立模式回调
173  * @return
174  */
176  return loginCallback;
177  }
178 
179  /**
180  * 非独立模式下,圈组登录参数的构造函数,
181  * 不需要传入account、token、appKey、authType、loginCallback
182  * account、token、appKey、authType从IM模块获取,loginCallback设置为空
183  * 其他参数通过setter方法设置
184  */
185  public QChatLoginParam() {
186  this.account = SDKCache.getAuthInfo() == null ? "" : SDKCache.getAuthInfo().getAccount();
187  this.token = SDKCache.getAuthInfo() == null ? "" : SDKCache.getAuthInfo().getToken();
188  this.appKey = SDKCache.getAppKey();
189 
190  int authType = SDKCache.getAuthInfo() == null ? QChatAuthType.DEFAULT.getValue() : SDKCache.getAuthInfo().getAuthType();
191  if (authType > QChatAuthType.DYNAMIC.getValue()) {
192  this.authType = QChatAuthType.DEFAULT;
193  } else {
194  this.authType = QChatAuthType.typeOfValue(authType);
195  }
196 
197  this.loginCallback = null;
198  }
199 
200  /**
201  * 独立模式下,圈组登录参数的构造函数,
202  * 需要传入account、token、appKey、authType、loginCallback
203  *
204  * @param account 账户名
205  * @param token 登录token,@NonNull,authType为DYNAMIC时传入空字符串""
206  * @param appKey appKey
207  * @param authType 鉴权模式
208  * @param callback 独立模式使用,外部设置link地址
209  */
210  private QChatLoginParam(@NonNull String account, @NonNull String token, @NonNull String appKey, QChatAuthType authType, QChatLoginCallback callback) {
211  this.loginCallback = callback;
212  this.account = account;
213  this.token = token;
214  this.appKey = appKey;
215  this.authType = authType;
216  }
217 
218  /**
219  * 数据是否有效,有效时才会进行登录操作,否则返回RES_EPARAM
220  * @return
221  */
222  public boolean isValid() {
223  if (authType == QChatAuthType.DEFAULT) {
224  return !TextUtils.isEmpty(account) && !TextUtils.isEmpty(token) && !TextUtils.isEmpty(appKey);
225  }
226 
227  if (authType == QChatAuthType.DYNAMIC) {
228  return !TextUtils.isEmpty(account) && !TextUtils.isEmpty(appKey);
229  }
230 
231  return false;
232  }
233 }
Integer getCustomClientType()
获取自定义客户端类型
String getCustomPushContentType()
获取自定义推送文案类型
void setCustomTag(String customTag)
设置自定义Tag
void setCustomPushContentType(String customPushContentType)
设置自定义推送文案类型,离线推送不显示详情时,要显示的文案对应的类型名称
List< String > getQChatLinkAddresses(final String account)
获取link地址列表
QChatLoginCallback getLoginCallback()
获取圈组登录独立模式回调
void setCustomClientType(int customClientType)
设置自定义客户端类型
QChatAuthType getAuthType()
获取鉴权方式
String getLoginExt()
获取登录自定义字段
static QChatAuthType typeOfValue(int value)
void setLoginExt(String loginExt)
设置登录自定义字段
QChatLoginParam()
非独立模式下,圈组登录参数的构造函数, 不需要传入account、token、appKey、authType、loginCallback acco...
boolean isValid()
数据是否有效,有效时才会进行登录操作,否则返回RES_EPARAM