场景简介
- 由于目前 SDK 免密接口是同步的,给用户返回成功时, 只是表示当前 SDK 的满足可以免密的条件, 真正免密认证是 SDK 内部异步发起的, 部分集成开发者希望获取到 SDK 内部免密成功或失败的事件以便给出自定义的交互提示
- 当前认证成功后, 部分集成开发者希望获取到 SDK 和代理服务器的连接/断开情况, 以便给出自定义的交互提示
- 使用过程中转发端口可能会发生改变,为了能正常使用rcp功能,需要在使用之前获取到正确的转发端口
基于以上三个需求, SDK 提供了事件回调接口, 支持回调通知以下 5 类事件
由于网络问题导致的内部免密失败事件, 该事件发生时内部还是会一直重试免密直到成功
内部免密成功事件
与代理服务器断开连接事件
与代理服务器连接成功事件
转发端口更改事件
前置步骤
- 在实际集成之前,我们要确保已经进行过开发准备
集成步骤
1、实现用户名密码主认证
参考典型场景用户名密码认证
2、设置事件监听回调
示例代码如下:
/**
* 注册事件通知回调
*/
SFUemSDK.getInstance().setGenericNotificationListener(this)
onNotify(notification: SFGenericNotification) {
console.info(TAG, notification.toString());
let type = notification.mNotificationType;
if (type == 'SFNotificaitonTypeTicketAuthSuccess') {
// 处理免密认证成功事件
} else if (type == 'SFNotificaitonTypeTicketAuthFailed') {
// 处理免密认证失败事件
} else if (type == 'SFNotificaitonTypeDisconnectFromProxy') {
// 处理和代理服务器断开连接事件
} else if (type == 'SFNotificaitonTypeConnectedToProxy') {
// 处理和代理服务器恢复连接事件
} else if (type == 'SFNotificaitonTypeForwardServerPortChanged') {
// 处理转发端口发生改变事件
}
}
setGenericNotificationListener
接口描述
设置事件监听回调对象,调用认证接口前设置该接口
注意事项
- 参数如果为 null,则代表清除回调
接口定义
SFUemSDK.getInstance().setGenericNotificationListener(null)
参数说明
表 1 参数说明
参数 | 是否必须 | 类型 | 描述 |
---|---|---|---|
listener | 是 | SFGenericNotificationListener | 事件通知接口回调 |
返回值
无
SFGenericNotification
类描述
回调事件通知对象,包含通知的类型, 信息
类定义
public class SFGenericNotification {
/**
* 错误码
*/
public mCode: number;
/**
* 提示信息
*/
public mMsg: string;
/**
* 通知类型
*/
public mNotificationType: string;
}
类成员描述
类成员 | 类型 | 说明 |
---|---|---|
mCode | number | 目前为 0 |
mMsg | string | 提示信息 |
mNotificationType | string | 通知事件类型 |