@singcl/ad-execute-manager 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ad/AdExecuteManager.d.ts +115 -0
- package/dist/ad/AdUnlock/RewardAdNovelUnlock.d.ts +114 -0
- package/dist/ad/AdUnlock/UnlockSettings.d.ts +42 -0
- package/dist/ad/CommonSettings.d.ts +179 -0
- package/dist/ad/CountRecorder.d.ts +50 -0
- package/dist/ad/ExbAnalyticsJS.d.ts +131 -0
- package/dist/ad/Logger.d.ts +34 -0
- package/dist/ad/LovelUnlockManager.d.ts +233 -0
- package/dist/ad/RewardAdFather.d.ts +121 -0
- package/dist/ad/RewardAdGlobalRecorder.d.ts +111 -0
- package/dist/ad/RewardAdLaunch.d.ts +91 -0
- package/dist/ad/RewardAdLaunchAlone.d.ts +63 -0
- package/dist/ad/RewardAdNovel.d.ts +384 -0
- package/dist/ad/RewardAdReadingLoad.d.ts +83 -0
- package/dist/ad/RewardAdReadingUnload.d.ts +44 -0
- package/dist/ad/RewardAdSceneTriggerManager.d.ts +65 -0
- package/dist/ad/SerializableError.d.ts +9 -0
- package/dist/ad/Storage.d.ts +98 -0
- package/dist/ad/compose.d.ts +12 -0
- package/dist/ad/const.d.ts +10 -0
- package/dist/index.d.ts +6 -0
- package/dist/typings/ad.d.ts +193 -0
- package/dist/typings/tracker.d.ts +115 -0
- package/dist/utils/functional.d.ts +13 -0
- package/package.json +7 -4
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
export default RewardAdNovel;
|
|
2
|
+
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
3
|
+
export type ICallbackArgs = {
|
|
4
|
+
/**
|
|
5
|
+
* 广告执行场景
|
|
6
|
+
*/
|
|
7
|
+
scene: number;
|
|
8
|
+
/**
|
|
9
|
+
* 是否看完
|
|
10
|
+
*/
|
|
11
|
+
isEnded: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 完整观看次数
|
|
14
|
+
*/
|
|
15
|
+
count: number;
|
|
16
|
+
/**
|
|
17
|
+
* 执行下一个任务的回调函数,手动调用以继续执行流程[end]
|
|
18
|
+
*/
|
|
19
|
+
end?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* 执行下一个任务的回调函数, 手动调用以继续执行流程[circle]
|
|
22
|
+
*/
|
|
23
|
+
circle?: (args: {
|
|
24
|
+
ignoreRemain: boolean;
|
|
25
|
+
scene: number;
|
|
26
|
+
}) => void;
|
|
27
|
+
};
|
|
28
|
+
export type IConnection = {
|
|
29
|
+
/**
|
|
30
|
+
* 广告中途退出回调
|
|
31
|
+
*/
|
|
32
|
+
onHalfway?: (args: ICallbackArgs) => void;
|
|
33
|
+
/**
|
|
34
|
+
* 广告展示回调
|
|
35
|
+
*/
|
|
36
|
+
onShow?: (args: ICallbackArgs) => void;
|
|
37
|
+
/**
|
|
38
|
+
* 广告执行成功回调
|
|
39
|
+
*/
|
|
40
|
+
onFinish?: (args: ICallbackArgs) => void;
|
|
41
|
+
/**
|
|
42
|
+
* 广告执行成功回调
|
|
43
|
+
*/
|
|
44
|
+
onAlways?: (args: ICallbackArgs) => void;
|
|
45
|
+
/**
|
|
46
|
+
* 广告执行失败回调
|
|
47
|
+
*/
|
|
48
|
+
onError?: (e: unknown) => void;
|
|
49
|
+
};
|
|
50
|
+
export type IConstructArgs = {
|
|
51
|
+
/**
|
|
52
|
+
* 初始化标识
|
|
53
|
+
*/
|
|
54
|
+
sign?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 是否保留tt激励视频广告实例
|
|
57
|
+
*/
|
|
58
|
+
preserveOnEnd?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 是否需要在超时情况下结束广告
|
|
61
|
+
*/
|
|
62
|
+
needEndOnTimeout?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 激励视频参数 (可选)
|
|
65
|
+
*/
|
|
66
|
+
adConfig?: IRewordAdConfig | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* 回调集合
|
|
69
|
+
*/
|
|
70
|
+
collection?: IConnection | undefined;
|
|
71
|
+
};
|
|
72
|
+
export type ICloseArgs = {
|
|
73
|
+
/**
|
|
74
|
+
* 是否看完
|
|
75
|
+
*/
|
|
76
|
+
isEnded: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 完整观看次数
|
|
79
|
+
*/
|
|
80
|
+
count: number;
|
|
81
|
+
};
|
|
82
|
+
export type IEndArgs = {
|
|
83
|
+
/**
|
|
84
|
+
* 是否解锁全部
|
|
85
|
+
*/
|
|
86
|
+
can_unlock_all?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 是否解锁小说
|
|
89
|
+
*/
|
|
90
|
+
can_unlock_novel?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* 剩余次数
|
|
93
|
+
*/
|
|
94
|
+
remain?: number;
|
|
95
|
+
/**
|
|
96
|
+
* 结束类型
|
|
97
|
+
*/
|
|
98
|
+
end_type?: "halfway" | "finished";
|
|
99
|
+
};
|
|
100
|
+
export type IRewardedVideoAd = {
|
|
101
|
+
/**
|
|
102
|
+
* 显示激励视频广告
|
|
103
|
+
*/
|
|
104
|
+
show: () => Promise<void>;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* @typedef {import('../typings/ad.js').IRewordAdConfig} IRewordAdConfig
|
|
108
|
+
*/
|
|
109
|
+
/**
|
|
110
|
+
* @typedef ICallbackArgs
|
|
111
|
+
* @property {number} scene 广告执行场景
|
|
112
|
+
* @property {boolean} isEnded 是否看完
|
|
113
|
+
* @property {number} count 完整观看次数
|
|
114
|
+
* @property {() => void} [end] 执行下一个任务的回调函数,手动调用以继续执行流程[end]
|
|
115
|
+
* @property {(args: {ignoreRemain: boolean, scene: number}) => void} [circle] 执行下一个任务的回调函数, 手动调用以继续执行流程[circle]
|
|
116
|
+
*
|
|
117
|
+
*/
|
|
118
|
+
/**
|
|
119
|
+
* @typedef IConnection
|
|
120
|
+
* @property {(args: ICallbackArgs) => void} [onHalfway] 广告中途退出回调
|
|
121
|
+
* @property {(args: ICallbackArgs) => void} [onShow] 广告展示回调
|
|
122
|
+
* @property {(args: ICallbackArgs) => void} [onFinish] 广告执行成功回调
|
|
123
|
+
* @property {(args: ICallbackArgs) => void} [onAlways] 广告执行成功回调
|
|
124
|
+
* @property {(e:unknown) => void} [onError] 广告执行失败回调
|
|
125
|
+
*/
|
|
126
|
+
/**
|
|
127
|
+
* @typedef IConstructArgs
|
|
128
|
+
* @property {string} [sign] 初始化标识
|
|
129
|
+
* @property {boolean} [preserveOnEnd] 是否保留tt激励视频广告实例
|
|
130
|
+
* @property {boolean} [needEndOnTimeout] 是否需要在超时情况下结束广告
|
|
131
|
+
* @property {IRewordAdConfig=} [adConfig] 激励视频参数 (可选)
|
|
132
|
+
* @property {IConnection=} [collection] 回调集合
|
|
133
|
+
*/
|
|
134
|
+
/**
|
|
135
|
+
* @typedef ICloseArgs
|
|
136
|
+
* @property {boolean} isEnded 是否看完
|
|
137
|
+
* @property {number} count 完整观看次数
|
|
138
|
+
*/
|
|
139
|
+
/**
|
|
140
|
+
* @typedef IEndArgs
|
|
141
|
+
* @property {boolean} [can_unlock_all] 是否解锁全部
|
|
142
|
+
* @property {boolean} [can_unlock_novel] 是否解锁小说
|
|
143
|
+
* @property {number} [remain] 剩余次数
|
|
144
|
+
* @property {'halfway' | 'finished'} [end_type] 结束类型
|
|
145
|
+
*
|
|
146
|
+
*/
|
|
147
|
+
/**
|
|
148
|
+
* @typedef IRewardedVideoAd
|
|
149
|
+
* @property {() => Promise.<void>} show 显示激励视频广告
|
|
150
|
+
*/
|
|
151
|
+
declare class RewardAdNovel extends RewardAdFather {
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @param {IConstructArgs} args
|
|
155
|
+
* @returns {RewardAdNovel}
|
|
156
|
+
*/
|
|
157
|
+
static build(args: IConstructArgs): RewardAdNovel;
|
|
158
|
+
/**
|
|
159
|
+
*
|
|
160
|
+
* @returns {RewardAdNovel}
|
|
161
|
+
*/
|
|
162
|
+
static getInstance(): RewardAdNovel;
|
|
163
|
+
/**
|
|
164
|
+
*
|
|
165
|
+
* @param {IConstructArgs} args
|
|
166
|
+
* @returns {RewardAdNovel}
|
|
167
|
+
*/
|
|
168
|
+
static "new"(args: IConstructArgs): RewardAdNovel;
|
|
169
|
+
/**
|
|
170
|
+
* @param {IConstructArgs} args
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
constructor(args: IConstructArgs);
|
|
174
|
+
_onHalfway: any;
|
|
175
|
+
_onShow: any;
|
|
176
|
+
_onFinish: any;
|
|
177
|
+
_onAlways: any;
|
|
178
|
+
_onError: any;
|
|
179
|
+
_alwaysCallback: any;
|
|
180
|
+
_halfwayCallback: any;
|
|
181
|
+
_finishedCallback: any;
|
|
182
|
+
_resolve: any;
|
|
183
|
+
_next: any;
|
|
184
|
+
/** @type {number} 广告执行场景 */
|
|
185
|
+
_scene: number;
|
|
186
|
+
_adTimeout: any;
|
|
187
|
+
_adTimeoutTime: number;
|
|
188
|
+
_adBeforeShowTimer: any;
|
|
189
|
+
_adBeforeShowTime: number;
|
|
190
|
+
_adSpeedCloseTimer: any;
|
|
191
|
+
_adSpeedCloseTime: number;
|
|
192
|
+
_needEndOnTimeout: boolean;
|
|
193
|
+
/** @deprecated TODO 移除 */
|
|
194
|
+
_needSpeedEndOnTimeout: boolean;
|
|
195
|
+
bindAdCloseLister: any;
|
|
196
|
+
bindAdErrorLister: any;
|
|
197
|
+
bindAdLoadLister: any;
|
|
198
|
+
bindApiAdErrorLister: any;
|
|
199
|
+
_bindShiftCloseLister: any;
|
|
200
|
+
_bindShiftErrorLister: any;
|
|
201
|
+
/**
|
|
202
|
+
* 初始化
|
|
203
|
+
* 子类可以选择覆盖此方法,或使用默认实现
|
|
204
|
+
* @param {IRewordAdConfig} params
|
|
205
|
+
* @param {(v: IRewardedVideoAd) => void} [callback] 初始化成功回调
|
|
206
|
+
* @returns {this} 当前实例
|
|
207
|
+
*/
|
|
208
|
+
initialize(args: any, callback?: (v: IRewardedVideoAd) => void): this;
|
|
209
|
+
_initAdLister(): void;
|
|
210
|
+
/**
|
|
211
|
+
* @param {object} args
|
|
212
|
+
* @param {number} [args.retry] 重试次数
|
|
213
|
+
*/
|
|
214
|
+
_initNovelConfig(args: {
|
|
215
|
+
retry?: number;
|
|
216
|
+
}): void;
|
|
217
|
+
novelConfig: RewardAdNovelConfig;
|
|
218
|
+
_onInnerExecuteBefore(): any;
|
|
219
|
+
_onInnerAdShowSuccess(): any;
|
|
220
|
+
/**
|
|
221
|
+
* 广告展示超时设置
|
|
222
|
+
* @param {object} args
|
|
223
|
+
* @param {string} args.scene 广告执行场景 必填
|
|
224
|
+
* @param {Function} args.end 结束当前广告任务的回调函数 必填
|
|
225
|
+
*/
|
|
226
|
+
_setAdTimeout(args: {
|
|
227
|
+
scene: string;
|
|
228
|
+
end: Function;
|
|
229
|
+
}): void;
|
|
230
|
+
/**
|
|
231
|
+
* 广告展示前定时器
|
|
232
|
+
* @param {object} args
|
|
233
|
+
* @param {string} args.scene 广告执行场景 必填
|
|
234
|
+
* @param {Function} args.prelude 广告展示前回调函数 可选
|
|
235
|
+
*/
|
|
236
|
+
_adPreludeInterval(args: {
|
|
237
|
+
scene: string;
|
|
238
|
+
prelude: Function;
|
|
239
|
+
}): void;
|
|
240
|
+
_clearAdTimeout(): void;
|
|
241
|
+
get rewardAd(): any;
|
|
242
|
+
/**
|
|
243
|
+
* 确保广告按顺序执行
|
|
244
|
+
* @param {Object} [ctx] 上下文对象,用于传递数据和状态
|
|
245
|
+
* @param {IRewordAdConfig} [ctx.options] 广告执行选项
|
|
246
|
+
* @param {import('../typings/ad.js').CallbackCollection} [ctx.collection] 回调集合
|
|
247
|
+
*
|
|
248
|
+
* @returns {Promise.<IEndArgs & ICloseArgs | Undefined>}
|
|
249
|
+
*/
|
|
250
|
+
addExecuteManager(ctx?: {
|
|
251
|
+
options?: IRewordAdConfig;
|
|
252
|
+
collection?: import("../typings/ad.js").CallbackCollection;
|
|
253
|
+
}): Promise<(IEndArgs & ICloseArgs) | undefined>;
|
|
254
|
+
/**
|
|
255
|
+
* @param {object} [ctx] 广告执行上下文
|
|
256
|
+
* @param {import('../typings/ad.js').IRewordAdConfig} [ctx.options] 广告执行选项
|
|
257
|
+
* @param {import('../typings/ad.js').CallbackCollection} [ctx.collection] 回调集合
|
|
258
|
+
* @param {Function} next 执行下一个任务的回调函数,手动调用以继续执行流程
|
|
259
|
+
*
|
|
260
|
+
* @returns {Promise.<IEndArgs & ICloseArgs | Undefined>}
|
|
261
|
+
*/
|
|
262
|
+
ad(ctx?: {
|
|
263
|
+
options?: import("../typings/ad.js").IRewordAdConfig;
|
|
264
|
+
collection?: import("../typings/ad.js").CallbackCollection;
|
|
265
|
+
}, next?: Function): Promise<(IEndArgs & ICloseArgs) | undefined>;
|
|
266
|
+
/**
|
|
267
|
+
* @param {object} [ctx] 广告执行上下文
|
|
268
|
+
* @param {object} [ctx.options] 广告执行选项
|
|
269
|
+
* @param {number} [ctx.options.scene] 广告执行场景
|
|
270
|
+
* @param {object} ctx.collection 回调集合
|
|
271
|
+
* @param {(v?: unknown) => void} ctx.collection.resolve 广告执行成功的回调函数
|
|
272
|
+
* @param {(v?: unknown) => void} [ctx.collection.reject] 广告执行失败的回调函数
|
|
273
|
+
* @param {(v?: unknown) => void} [ctx.collection.before] 广告执行前的回调函数
|
|
274
|
+
* @param {(v?: unknown) => void} [ctx.collection.success] 广告执行成功的回调函数
|
|
275
|
+
* @param {(v?: unknown) => void} [ctx.collection.prelude] 拉起广告前计时的回调函数
|
|
276
|
+
* @param {Function} next 执行下一个任务的回调函数,手动调用以继续执行流程
|
|
277
|
+
*/
|
|
278
|
+
_adInner(ctx?: {
|
|
279
|
+
options?: {
|
|
280
|
+
scene?: number;
|
|
281
|
+
};
|
|
282
|
+
collection: {
|
|
283
|
+
resolve: (v?: unknown) => void;
|
|
284
|
+
reject?: (v?: unknown) => void;
|
|
285
|
+
before?: (v?: unknown) => void;
|
|
286
|
+
success?: (v?: unknown) => void;
|
|
287
|
+
prelude?: (v?: unknown) => void;
|
|
288
|
+
};
|
|
289
|
+
}, next?: Function): void;
|
|
290
|
+
_before: (v?: unknown) => void;
|
|
291
|
+
_success: (v?: unknown) => void;
|
|
292
|
+
/**
|
|
293
|
+
* 广告加载
|
|
294
|
+
* @returns
|
|
295
|
+
*/
|
|
296
|
+
adLoad(): Promise<void>;
|
|
297
|
+
/**
|
|
298
|
+
* 广告展示
|
|
299
|
+
* @returns
|
|
300
|
+
*/
|
|
301
|
+
adShow(): Promise<void>;
|
|
302
|
+
_outerCloseCallback(args: any): void;
|
|
303
|
+
_outerHalfwayCallback(args: any): void;
|
|
304
|
+
_outerFinishedCallback(args: any): void;
|
|
305
|
+
/**
|
|
306
|
+
* 关闭激励视频
|
|
307
|
+
* @param {ICloseArgs} args
|
|
308
|
+
*/
|
|
309
|
+
adCloseLister(args: ICloseArgs): void;
|
|
310
|
+
adErrorLister(e: any): void;
|
|
311
|
+
apiAdErrorLister(e: any): void;
|
|
312
|
+
/**
|
|
313
|
+
* 激励视频广告组件**成功**拉取广告素材时会触发
|
|
314
|
+
* 创建激励时候后会自动拉取广告素材,如果广告拉取成功,也会触发此事件,不管是否调用show方法
|
|
315
|
+
* @param {unknown} e
|
|
316
|
+
*/
|
|
317
|
+
adLoadLister(e: unknown): void;
|
|
318
|
+
adDestroy(): void;
|
|
319
|
+
_shiftCloseLister(args: any): void;
|
|
320
|
+
_shiftErrorLister(args: any): void;
|
|
321
|
+
/**
|
|
322
|
+
* 手动出栈
|
|
323
|
+
*/
|
|
324
|
+
shift(): void;
|
|
325
|
+
}
|
|
326
|
+
import RewardAdFather from './RewardAdFather';
|
|
327
|
+
declare class RewardAdNovelConfig {
|
|
328
|
+
/**
|
|
329
|
+
*
|
|
330
|
+
* @param {object} args
|
|
331
|
+
* @param {string} args.sign 初始化标识
|
|
332
|
+
* @param {number} [args.retry] 重试次数
|
|
333
|
+
* @returns {RewardAdNovelConfig}
|
|
334
|
+
*/
|
|
335
|
+
static "new"(args: {
|
|
336
|
+
sign: string;
|
|
337
|
+
retry?: number;
|
|
338
|
+
}): RewardAdNovelConfig;
|
|
339
|
+
/**
|
|
340
|
+
*
|
|
341
|
+
* @param {object} [args]
|
|
342
|
+
* @param {number} [args.retry]
|
|
343
|
+
*/
|
|
344
|
+
constructor(args?: {
|
|
345
|
+
retry?: number;
|
|
346
|
+
});
|
|
347
|
+
free_incentive_frequency: number;
|
|
348
|
+
frequency: {
|
|
349
|
+
total: number;
|
|
350
|
+
current: number;
|
|
351
|
+
};
|
|
352
|
+
commonSettings: CommonSettings;
|
|
353
|
+
/**
|
|
354
|
+
*
|
|
355
|
+
* @param {object} [args]
|
|
356
|
+
* @param {number} [args.retry]
|
|
357
|
+
*/
|
|
358
|
+
_init(args?: {
|
|
359
|
+
retry?: number;
|
|
360
|
+
}): void;
|
|
361
|
+
/**
|
|
362
|
+
*
|
|
363
|
+
* @param {object} [args]
|
|
364
|
+
* @param {number} [args.retry]
|
|
365
|
+
*/
|
|
366
|
+
_adTimes(args?: {
|
|
367
|
+
retry?: number;
|
|
368
|
+
}): void;
|
|
369
|
+
reset(): void;
|
|
370
|
+
updateRetry(): void;
|
|
371
|
+
remain(): number;
|
|
372
|
+
options(): {
|
|
373
|
+
multiton: boolean;
|
|
374
|
+
multitonRewardTimes: number;
|
|
375
|
+
multitonRewardMsg: string[];
|
|
376
|
+
progressTip: boolean;
|
|
377
|
+
} | {
|
|
378
|
+
multiton?: undefined;
|
|
379
|
+
multitonRewardTimes?: undefined;
|
|
380
|
+
multitonRewardMsg?: undefined;
|
|
381
|
+
progressTip?: undefined;
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
import CommonSettings from './CommonSettings';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export default RewardAdReadingLoad;
|
|
2
|
+
export type ISysConfig = {
|
|
3
|
+
/**
|
|
4
|
+
* 再看一次配置
|
|
5
|
+
*/
|
|
6
|
+
free_incentive_frequency?: number | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* 自定义解锁弹窗配置
|
|
9
|
+
*/
|
|
10
|
+
c_unlock_pop_enable?: number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 返回书城激励视频每日展示次数 0 不展示 具体数量展示几次
|
|
13
|
+
*/
|
|
14
|
+
read_load_times?: number | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
17
|
+
export type IConstructArgs = import("../typings/ad.js").IConstructArgs;
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {import('../typings/ad.js').IRewordAdConfig} IRewordAdConfig
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {import('../typings/ad.js').IConstructArgs} IConstructArgs
|
|
23
|
+
*/
|
|
24
|
+
declare class RewardAdReadingLoad extends RewardAdNovel {
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param {IConstructArgs} args
|
|
28
|
+
* @returns {RewardAdReadingLoad}
|
|
29
|
+
*/
|
|
30
|
+
static build(args: IConstructArgs): RewardAdReadingLoad;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @returns {RewardAdReadingLoad}
|
|
34
|
+
*/
|
|
35
|
+
static getInstance(): RewardAdReadingLoad;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @param {IConstructArgs} args
|
|
39
|
+
* @returns {RewardAdReadingLoad}
|
|
40
|
+
*/
|
|
41
|
+
static "new"(args: IConstructArgs): RewardAdReadingLoad;
|
|
42
|
+
constructor(args: any);
|
|
43
|
+
loadSettings: RewardAdReadingLoadSettings;
|
|
44
|
+
/**
|
|
45
|
+
* @param {object} options
|
|
46
|
+
* @param {(con:boolean, options:object) => void} [callback]
|
|
47
|
+
*/
|
|
48
|
+
satisfy(options: object, callback?: (con: boolean, options: object) => void): void | Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
import RewardAdNovel from './RewardAdNovel';
|
|
51
|
+
declare class RewardAdReadingLoadSettings {
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param {object} args
|
|
55
|
+
* @param {string} args.sign 初始化标识
|
|
56
|
+
* @returns {RewardAdReadingLoadSettings}
|
|
57
|
+
*/
|
|
58
|
+
static "new"(args: {
|
|
59
|
+
sign: string;
|
|
60
|
+
}): RewardAdReadingLoadSettings;
|
|
61
|
+
frequency: {
|
|
62
|
+
total: number;
|
|
63
|
+
current: number;
|
|
64
|
+
};
|
|
65
|
+
commonSettings: CommonSettings;
|
|
66
|
+
storage: Storage;
|
|
67
|
+
_init(): void;
|
|
68
|
+
/**
|
|
69
|
+
* 获取返回广告的展示次数
|
|
70
|
+
* @returns {number} 返回广告的展示次数配置,如果没有配置则返回0
|
|
71
|
+
*/
|
|
72
|
+
_adTimes(): number;
|
|
73
|
+
_safeLocalValue(v: any): any;
|
|
74
|
+
_initLocalTimes(): void;
|
|
75
|
+
_initFrequency(): void;
|
|
76
|
+
updateFrequency(): void;
|
|
77
|
+
remainFrequency(): number;
|
|
78
|
+
updateToday(): void;
|
|
79
|
+
_remain(): number;
|
|
80
|
+
condition(): boolean;
|
|
81
|
+
}
|
|
82
|
+
import CommonSettings from './CommonSettings';
|
|
83
|
+
import Storage from './Storage';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export default RewardAdReadingUnload;
|
|
2
|
+
export type ISysConfig = {
|
|
3
|
+
/**
|
|
4
|
+
* 再看一次配置
|
|
5
|
+
*/
|
|
6
|
+
free_incentive_frequency?: number | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* 自定义解锁弹窗配置
|
|
9
|
+
*/
|
|
10
|
+
c_unlock_pop_enable?: number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 返回书城激励视频每日展示次数 0 不展示 具体数量展示几次
|
|
13
|
+
*/
|
|
14
|
+
read_page_back_ad?: number | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
17
|
+
export type IConstructArgs = import("../typings/ad.js").IConstructArgs;
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {import('../typings/ad.js').IRewordAdConfig} IRewordAdConfig
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {import('../typings/ad.js').IConstructArgs} IConstructArgs
|
|
23
|
+
*/
|
|
24
|
+
declare class RewardAdReadingUnload extends RewardAdNovel {
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param {IConstructArgs} args
|
|
28
|
+
* @returns {RewardAdReadingUnload}
|
|
29
|
+
*/
|
|
30
|
+
static build(args: IConstructArgs): RewardAdReadingUnload;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {IConstructArgs} args
|
|
34
|
+
* @returns {RewardAdReadingUnload}
|
|
35
|
+
*/
|
|
36
|
+
static "new"(args: IConstructArgs): RewardAdReadingUnload;
|
|
37
|
+
/**
|
|
38
|
+
* @param {object} options
|
|
39
|
+
* @param {(con:boolean, options:object) => void} [callback]
|
|
40
|
+
*/
|
|
41
|
+
static satisfy(options: object, callback?: (con: boolean, options: object) => void): void | Promise<void>;
|
|
42
|
+
constructor(args: any);
|
|
43
|
+
}
|
|
44
|
+
import RewardAdNovel from './RewardAdNovel';
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export default RewardAdSceneTriggerManager;
|
|
2
|
+
/**
|
|
3
|
+
* 场景值枚举 可持续添加
|
|
4
|
+
*/
|
|
5
|
+
export type RewardAdTriggerScene = import("../typings/ad.js").RewardAdTriggerScene;
|
|
6
|
+
/**
|
|
7
|
+
* 场景值枚举 可持续添加
|
|
8
|
+
* @typedef {import('../typings/ad.js').RewardAdTriggerScene} RewardAdTriggerScene
|
|
9
|
+
*/
|
|
10
|
+
declare class RewardAdSceneTriggerManager {
|
|
11
|
+
static instance: any;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {object} args
|
|
15
|
+
* @param {string} args.sign 初始化标识
|
|
16
|
+
* @returns {RewardAdSceneTriggerManager}
|
|
17
|
+
*/
|
|
18
|
+
static build(args: {
|
|
19
|
+
sign: string;
|
|
20
|
+
}): RewardAdSceneTriggerManager;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @returns {RewardAdSceneTriggerManager}
|
|
24
|
+
*/
|
|
25
|
+
static getInstance(): RewardAdSceneTriggerManager;
|
|
26
|
+
/**
|
|
27
|
+
* @param {object} args
|
|
28
|
+
* @param {string} args.sign 初始化标识
|
|
29
|
+
*/
|
|
30
|
+
constructor(args: {
|
|
31
|
+
sign: string;
|
|
32
|
+
});
|
|
33
|
+
_initSign: string;
|
|
34
|
+
/** @type {RewardAdTriggerScene} */
|
|
35
|
+
_currScene: RewardAdTriggerScene;
|
|
36
|
+
/**
|
|
37
|
+
* @param {object} args
|
|
38
|
+
* @param {string} args.sign 初始化标识
|
|
39
|
+
*/
|
|
40
|
+
initialize(args: {
|
|
41
|
+
sign: string;
|
|
42
|
+
}): void;
|
|
43
|
+
/**
|
|
44
|
+
* 获取场景值
|
|
45
|
+
* @param {RewardAdTriggerScene} value 场景值
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
addScene(value: RewardAdTriggerScene): this;
|
|
49
|
+
/**
|
|
50
|
+
* 获取场景值
|
|
51
|
+
* @param {import('../typings/ad.js').RewardAdTriggerSceneType} value 场景值类型
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
addSceneType(value?: import("../typings/ad.js").RewardAdTriggerSceneType): this;
|
|
55
|
+
/**
|
|
56
|
+
* 获取当前场景值
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
getCurrentScene(): "launch_ad" | "novel_plugin_strong_ad" | "novel_plugin_unlock_btn" | "novel_plugin_free_benefit_btn" | "home_free_welfare_btn" | "home_free_popup" | "other" | "home_back_show" | "novel_plugin_free_time_btn" | "launch_ad_alone";
|
|
60
|
+
/**
|
|
61
|
+
* 站位方法,没有任何左右
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
placeholder(): any;
|
|
65
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export default Storage;
|
|
2
|
+
/**
|
|
3
|
+
* @example
|
|
4
|
+
const storage = new Storage({
|
|
5
|
+
prefix: 'myapp_',
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// 设置当天有效的数据
|
|
9
|
+
*storage.setItem('dailyTask', { completed: false }, 'today');
|
|
10
|
+
|
|
11
|
+
// 设置普通带过期时间的数据(2小时)
|
|
12
|
+
storage.setItem('tempData', { value: 123 }, 2 * 60 * 60 * 1000);
|
|
13
|
+
|
|
14
|
+
// 设置永久有效的数据
|
|
15
|
+
storage.setItem('userSettings', { theme: 'dark' });
|
|
16
|
+
|
|
17
|
+
// 获取数据
|
|
18
|
+
const dailyTask = storage.getStorageSync('dailyTask');
|
|
19
|
+
const tempData = storage.getStorageSync('tempData');
|
|
20
|
+
const userSettings = storage.getStorageSync('userSettings');
|
|
21
|
+
|
|
22
|
+
console.log('Daily Task:', dailyTask);
|
|
23
|
+
console.log('Temp Data:', tempData);
|
|
24
|
+
console.log('User Settings:', userSettings);
|
|
25
|
+
*/
|
|
26
|
+
declare class Storage {
|
|
27
|
+
/**
|
|
28
|
+
* @param {object=} args
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
static "new"(args?: object | undefined): Storage;
|
|
32
|
+
constructor(options?: {});
|
|
33
|
+
/** @type {CommonSettings | null} */
|
|
34
|
+
_commonSettings: CommonSettings | null;
|
|
35
|
+
config: {
|
|
36
|
+
prefix: string;
|
|
37
|
+
expire: any;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* 获取当天结束时间的时间戳
|
|
41
|
+
* @returns {number} 当天23:59:59的时间戳
|
|
42
|
+
*/
|
|
43
|
+
getTodayEndTimestamp(): number;
|
|
44
|
+
/**
|
|
45
|
+
* 设置存储项 - 内部使用
|
|
46
|
+
* @param {string} key 存储键
|
|
47
|
+
* @param {any} value 存储值
|
|
48
|
+
* @param {number|'today'} expire 过期时间(毫秒)或'today'表示当天有效,可选
|
|
49
|
+
*/
|
|
50
|
+
_setItem(storageKey: any, value: any, expire: number | "today"): void;
|
|
51
|
+
/**
|
|
52
|
+
* 获取存储项 - 内部使用
|
|
53
|
+
* @param {string} key 存储键
|
|
54
|
+
* @returns {any} 存储的值,如果过期或不存在则返回null
|
|
55
|
+
*/
|
|
56
|
+
_getItem(storageKey: any): any;
|
|
57
|
+
/**
|
|
58
|
+
* 设置存储项
|
|
59
|
+
* @param {string} key 存储键
|
|
60
|
+
* @param {any} value 存储值
|
|
61
|
+
* @param {number|'today'} expire 过期时间(毫秒)或'today'表示当天有效,可选
|
|
62
|
+
*/
|
|
63
|
+
setItem(key: string, value: any, expire: number | "today"): void;
|
|
64
|
+
/**
|
|
65
|
+
* 获取存储项
|
|
66
|
+
* @param {string} key 存储键
|
|
67
|
+
* @returns {any} 存储的值,如果过期或不存在则返回null
|
|
68
|
+
*/
|
|
69
|
+
getItem(key: string): any;
|
|
70
|
+
/**
|
|
71
|
+
* 获取存储项 - 用户维度
|
|
72
|
+
* @param {string} key 存储键
|
|
73
|
+
* @returns {any} 存储的值,如果过期或不存在则返回null
|
|
74
|
+
*/
|
|
75
|
+
getUserItem(key: string): any;
|
|
76
|
+
/**
|
|
77
|
+
* 设置存储项 - 用户维度
|
|
78
|
+
* @param {string} key 存储键
|
|
79
|
+
* @param {any} value 存储值
|
|
80
|
+
* @param {number|'today'} expire 过期时间(毫秒)或'today'表示当天有效,可选
|
|
81
|
+
*/
|
|
82
|
+
setUserItem(key: string, value: any, expire: number | "today"): void;
|
|
83
|
+
/**
|
|
84
|
+
* 删除存储项
|
|
85
|
+
* @param {string} key 存储键
|
|
86
|
+
*/
|
|
87
|
+
removeItem(key: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* 清空所有存储项
|
|
90
|
+
*/
|
|
91
|
+
clear(): void;
|
|
92
|
+
/**
|
|
93
|
+
* 获取所有未过期的存储键
|
|
94
|
+
* @returns {string[]} 键数组
|
|
95
|
+
*/
|
|
96
|
+
keys(): string[];
|
|
97
|
+
}
|
|
98
|
+
import CommonSettings from './CommonSettings';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default compose;
|
|
2
|
+
/**
|
|
3
|
+
* Koa中间件核心处理机制
|
|
4
|
+
* @see https://github.com/singcl/koa/blob/master/src/compose-es7.js
|
|
5
|
+
* @param {Array.<Function>} middlewares KOA中间件数组,每个中间件函数接收ctx和next参数
|
|
6
|
+
* @returns {Function} 返回一个组合后的中间件函数,接收ctx参数并按顺序执行所有中间件
|
|
7
|
+
* @version 0.0.1
|
|
8
|
+
* @since 0.0.1
|
|
9
|
+
* @author singcl 24661881@qq.com
|
|
10
|
+
* @description 将多个中间件函数组合成一个单一的中间件函数,形成洋葱模型的调用链
|
|
11
|
+
*/
|
|
12
|
+
declare function compose(middlewares: Array<Function>): Function;
|