178 lines
3.9 KiB
TypeScript
178 lines
3.9 KiB
TypeScript
|
|
/**
|
|
* 激励视频广告关闭回调载荷数据接口
|
|
*/
|
|
export interface RewardedVideoCloseCbPayload {
|
|
/** 视频是否播放完成 */
|
|
isEnded: boolean;
|
|
/** 奖励数量 */
|
|
count: number;
|
|
}
|
|
|
|
/**
|
|
* 激励视频广告关闭回调函数接口
|
|
*/
|
|
export interface RewardedVideoCloseCb {
|
|
(data: RewardedVideoCloseCbPayload): void;
|
|
}
|
|
|
|
/**
|
|
* 激励视频广告错误回调载荷数据接口
|
|
*/
|
|
export interface RewardedVideoErrorCbPayload {
|
|
/** 错误消息 */
|
|
errMsg: string;
|
|
/** 错误代码 */
|
|
errCode: string;
|
|
}
|
|
|
|
/**
|
|
* 激励视频广告错误回调函数接口
|
|
*/
|
|
export interface RewardedVideoErrorCb {
|
|
(data: RewardedVideoErrorCbPayload): void;
|
|
}
|
|
|
|
/**
|
|
* 激励视频广告加载回调函数接口
|
|
*/
|
|
export interface RewardedVideoLoadCb {
|
|
(): void;
|
|
}
|
|
|
|
/**
|
|
* 激励视频广告配置选项接口
|
|
*/
|
|
export interface RewardedVideoAdOptions {
|
|
/** 广告位 ID */
|
|
adUnitId: string;
|
|
}
|
|
/**
|
|
* 激励视频广告抽象基类
|
|
* 定义了跨平台激励视频广告的统一接口
|
|
*/
|
|
export abstract class RewardedVideoAd {
|
|
abstract canUse(): boolean;
|
|
/**
|
|
* 手动加载广告素材
|
|
* 当广告素材加载出现错误时,可以通过此方法手动重新加载
|
|
* @returns Promise<void> 加载完成的 Promise
|
|
*/
|
|
abstract load(): Promise<void>;
|
|
|
|
/**
|
|
* 展示激励视频广告
|
|
* @returns Promise<void> 展示完成的 Promise
|
|
*/
|
|
abstract show(): Promise<void>;
|
|
|
|
/**
|
|
* 销毁激励视频广告实例
|
|
* 释放相关资源,销毁后需要重新创建实例
|
|
* @returns Promise<void> 销毁完成的 Promise
|
|
*/
|
|
abstract destroy(): Promise<void>;
|
|
|
|
/**
|
|
* 绑定广告关闭事件监听器
|
|
* 当用户点击广告关闭按钮或广告播放完成时触发
|
|
* @param cb 关闭事件回调函数
|
|
*/
|
|
abstract onClose(cb: RewardedVideoCloseCb): void;
|
|
|
|
/**
|
|
* 解除绑定广告关闭事件监听器
|
|
* @param cb 需要移除的关闭事件回调函数
|
|
*/
|
|
abstract offClose(cb: RewardedVideoCloseCb): void;
|
|
|
|
/**
|
|
* 绑定广告错误事件监听器
|
|
* 当广告加载或播放出现错误时触发
|
|
* @param cb 错误事件回调函数
|
|
*/
|
|
abstract onError(cb: RewardedVideoErrorCb): void;
|
|
|
|
/**
|
|
* 解除绑定广告错误事件监听器
|
|
* @param cb 需要移除的错误事件回调函数
|
|
*/
|
|
abstract offError(cb: RewardedVideoErrorCb): void;
|
|
|
|
/**
|
|
* 绑定广告加载成功事件监听器
|
|
* 当广告素材加载完成时触发
|
|
* @param cb 加载成功事件回调函数
|
|
*/
|
|
abstract onLoad(cb: RewardedVideoLoadCb): void;
|
|
|
|
/**
|
|
* 解除绑定广告加载成功事件监听器
|
|
* @param cb 需要移除的加载成功事件回调函数
|
|
*/
|
|
abstract offLoad(cb: RewardedVideoLoadCb): void;
|
|
|
|
/**
|
|
* 获取广告是否准备就绪
|
|
* @returns boolean 广告是否可以播放
|
|
*/
|
|
abstract isReady(): boolean;
|
|
|
|
/**
|
|
* 预加载广告
|
|
* 在合适的时机预先加载广告,提高用户体验
|
|
* @returns Promise<void> 预加载完成的 Promise
|
|
*/
|
|
abstract preload(): Promise<void>;
|
|
}
|
|
|
|
|
|
/**
|
|
* 获取用户信息
|
|
*/
|
|
export interface IUserInfo {
|
|
avatarUrl: string;
|
|
city: string;
|
|
country: string;
|
|
gender: number;
|
|
language: string;
|
|
nickName: string;
|
|
province: string;
|
|
}
|
|
|
|
export interface IUserProfile {
|
|
userInfo: IUserInfo;
|
|
cloudId: string;
|
|
encryptedData: string;
|
|
errMsg: string;
|
|
iv: string;
|
|
rawData: string;
|
|
signature: string;
|
|
}
|
|
|
|
export interface ILogin {
|
|
anonymousCode: string;
|
|
code: string;
|
|
errMsg: string;
|
|
isLogin: boolean;
|
|
}
|
|
|
|
export interface ICheckSession {
|
|
errMsg: string;
|
|
}
|
|
export abstract class UserInfo {
|
|
abstract getUserProfile(): Promise<IUserProfile>;
|
|
abstract login(): Promise<ILogin>;
|
|
abstract checkSession(): Promise<ICheckSession>;
|
|
}
|
|
|
|
export interface IDownloadFile {
|
|
errMsg: string;
|
|
header: { [key: string]: string };
|
|
profile: {};
|
|
statusCode: number;
|
|
tempFilePath: string;
|
|
}
|
|
export abstract class Media {
|
|
abstract downloadFile(url: string): Promise<IDownloadFile>;
|
|
} |