跳到主要内容

SignInClient API 说明

更新时间 2024/12/26 08:40:29

SignInClient 签到子服务对象是使用英飞辅助 SDK InfiAccessoryClient 在完成获取签到服务后获取到的对象实例。

API 列表

createSignInSession

createSignInSession: (data: SignInConfigT) => Promise<CreateSignInSessionType>;

创建签到活动。签到活动创建成功后,在相同业务频道(channelId)内的用户均会收到该签到活动信息。

参数

创建签到活动的参数 SignInConfigT 对象类型说明如下:

参数名
类型
说明
必填
title
string
签到标题
duration
number
签到持续时间
customizedValue
string
签到自定义数据

返回

执行 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签到活动数据类型定义如下:

参数名
类型
说明
signInId
string
签到 ID
title
string
签到标题
duration
number
签到持续时间
customizedValue
string
签到自定义数据
count
number
签到数
host
string
签到创建者用户 ID
remainingTime
number
签到剩余时间
startTime
number
签到开始时间戳
endTime
number
签到计划结束时间戳
realEndTime
number
签到实际结束时间戳,可由 SDK 或 REST API 主动结束签到

返回

on API 在执行后,会返回一个函数,您可以通过执行该函数来释放监听行为。

destroy

destroy: () => void;

销毁实例,释放全部实例内资源,解除与 InfiAccessoryClient 对象的关联. 再次调用 InfiAccessoryClient.getSignInClient API 会获取到一个新的 SignInClient 对象。