SignInClient API 说明
SignInClient 签到子服务对象是使用英飞辅助 SDK InfiAccessoryClient 在完成获取签到服务后获取到的对象实例。
API 列表
createSignInSession
createSignInSession: (data: SignInConfigT) => Promise<CreateSignInSessionType>;
创建签到活动。签到活动创建成功后,在相同业务频道(channelId)内的用户均会收到该签到活动信息。
参数
创建签到活动的参数 SignInConfigT 对象类型说明如下:
返回
执行 createSignInSession API 后,您会获取到一个 Promise 对象 (CreateSignInSessionType),
该对象在 fulfill 后,会有以下可能的返回结果:
-
执行成功,返回对象为:
{
code: 0; // 成功状态码
payload: SignInDataT; // 签到活动数据
} -
执行失败,返回对象为:
{
code: number; // 失败错误码
}错误码对应含义可以参考错误码文档。
注:同一时刻,单一业务频道下仅能存在一场签到活动,如果您在已有签到活动情况下仍然执行
createSignInSession您将会收到 101 错误码提示。
terminateCurrentSession
terminateCurrentSession: () => Promise<TerminateCurrentSessionT>;
结束当前业务频道内存在的活跃签到活动。
返回
执行 terminateCurrentSession API 后,您会获取到一个 Promise 对象 (TerminateCurrentSessionT),
该对象在 fulfill 后,会有以下可能的返回结果:
-
执行成功,返回对象为:
{
code: 0; // 成功状态码
payload: SignInDataT; // 已结束的签到活动数据
} -
执行失败,返回对象为:
{
code: number; // 失败错误码
}错误码对应含义可以参考错误码文档。
signIn
signIn: (message?: string) => Promise<{ code: 0 | InfiAccessSDKErrorCode }>;
执行签到动作的 API。支持发送自定义字符串内容,该内容可以通过查询签到记录接口获取。
on
on: (
evtName: SignInEventType,
CB: (evtParam: SignInEventMapT[SignInEventType]) => void,
) => () => void;
监听当前业务频道内有关签到活动的数据信息,并注入回调函数。事件类型 evtName 包括:
- REMAINING_TIME_SYNC:签到剩余时间同步
- SIGNIN_SESSION_STARTED:有新的签到活动被发起
- REMOTE_SIGNED_IN:远端有用户进行了签到
- SESSION_ENDED:签到行为已终止
SignInEventMapT 类型定义如下:
/** 签到服务相关事件名 */
enum SignInEventType {
REMAINING_TIME_SYNC = 'REMAINING_TIME_SYNC',
SIGNIN_SESSION_STARTED = 'SIGNIN_SESSION_STARTED',
REMOTE_SIGNED_IN = 'REMOTE_SIGNED_IN',
SESSION_ENDED = 'SESSION_ENDED',
}
/** 签到服务事件名对应的回调参数类型定义 */
type SignInEventMapT = {
/** 签到剩余时间,单位为毫秒 */
[SignInEventType.REMAINING_TIME_SYNC]: { remainingTime: number };
[SignInEventType.SIGNIN_SESSION_STARTED]: SignInDataT; // 签到活动数据类型
[SignInEventType.REMOTE_SIGNED_IN]: {
loginName: string;
signInTime: number;
signInMsg?: string;
};
[SignInEventType.SESSION_ENDED]: SignInDataT; // 签到活动数据类型
};
SignInDataT签到活动数据类型定义如下:
返回
on API 在执行后,会返回一个函数,您可以通过执行该函数来释放监听行为。
destroy
destroy: () => void;
销毁实例,释放全部实例内资源,解除与 InfiAccessoryClient 对象的关联.
再次调用 InfiAccessoryClient.getSignInClient API 会获取到一个新的 SignInClient 对象。