SFBaseMessage
类描述
回调公共信息类。封装了公共的错误码,错误信息等等。
目前使用到SFBaseMessage的回调有:
- 认证结果回调SFAuthResultListener。
- 注销结果回调SFLogoutListener
- Spa设置回调SFSetSpaConfigListener
- 通用https认证请求回调SFCommonHttpsRequestListener
类定义
declare class SFBaseMessage {
mErrCode: number;
mErrStr: string;
mServerInfo: string;
}
类成员描述
| 类成员 | 类型 | 说明 |
|---|---|---|
| mErrCode | number | 具体可以去看下错误码描述 |
| mErrStr | string | 错误信息,SDK在正常或者异常返回的错误信息。 |
| mServerInfo | string | 服务器透传的信息,服务器在某些情况下直接 传递过来的信息。 |
SFBaseMessage 子类型说明
在认证回调(如 onAuthProgress)中,message 参数的具体类型与 nextAuthType 相关。以下是各认证类型对应的 Message 子类:
| 认证类型 (nextAuthType) | Message 子类 | 说明 |
|---|---|---|
| AUTH_TYPE_SMS | SFSmsMessage | 短信认证 |
| AUTH_TYPE_RENEW_PASSWORD | SFChangePswMessage | 改密策略认证 |
类型转换示例代码
由于 message 参数类型为 SFBaseMessage 基类,需要通过 instanceof 判断实际类型后再进行强转:
public onAuthProcess(authType: SFAuthType, message: SFBaseMessage) {
switch (authType) {
case SFAuthType.AUTH_TYPE_SMS:
// 短信认证
if (message instanceof SFSmsMessage) {
let smsMessage = message as SFSmsMessage;
let phoneNum = smsMessage.phoneNum;
let countDown = smsMessage.countDown;
// 处理短信认证逻辑...
}
break;
case SFAuthType.AUTH_TYPE_RENEW_PASSWORD:
// 改密策略认证
if (message instanceof SFChangePswMessage) {
let changePswMessage = message as SFChangePswMessage;
let policyMsg = changePswMessage.policyMsg;
// 处理改密策略逻辑...
}
break;
default:
// 其他未知认证类型
break;
}
}
注意事项
- 使用
instanceof进行类型判断时,应按照认证类型出现的可能性和业务优先级进行排序 - 强转前务必先使用
instanceof判断,避免类型转换异常 - 某些认证类型可能返回 null 的 message,需进行空值检查
示例代码
具体去看下,类描述中的几个回调。