igsdk 1.1.1 → 1.1.3

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/README.md ADDED
@@ -0,0 +1,443 @@
1
+ # iGlees SDK文档
2
+
3
+
4
+
5
+ ## SDK简介
6
+
7
+ iGlees SDK为Cocos开发者提供了广告、网络请求、加解密、缓存数据等功能,CocosCreator开发者可以使用该SDK提供的功能快速高效的构建游戏。
8
+
9
+
10
+
11
+ ## SDK集成
12
+
13
+ #### 导入SDK
14
+
15
+ iGlees SDK的所有功能均放在IG命名空间,然后根据具体的功能模块进行调用。比如IG.IGSdk,IG.HttpWrapper等。使用iGlees SDK前,需要先导入SDK。目前支持两种方式导入,具体如下:
16
+
17
+ ###### npm方式导入
18
+
19
+ ```typescript
20
+ //在项目根目录使用npm命令安装iGlees SDK(建议使用最新版本)
21
+ npm install igsdk@latest --save
22
+
23
+ //代码中导入SDK使用
24
+ import IG from 'igsdk';
25
+ ```
26
+
27
+ ###### 手动导入
28
+
29
+ ```typescript
30
+ //1、下载igsdk.js、igsdk.d.ts,将两个文件放入到项目assets目录下的lib目录(具体根据实际情况存放到指定目录),并把igsdk.js设置成插件,并允许web、native、编辑器环境加载
31
+
32
+ //2、导入SDK,并设置代码提示
33
+ import IG from './lib/igsdk.js';
34
+ /// <reference path="./lib/igsdk.d.ts" />
35
+ ```
36
+
37
+
38
+
39
+ #### 初始化SDK
40
+
41
+ 在使用iGlees SDK前,请务必先调用初始化方法完成SDK的初始,具体如下:
42
+
43
+ ```typescript
44
+ /**
45
+ * 初始化(注:使用SDK功能前调用,只需要调用一次,建议进入首个场景就调用)
46
+ * @param sys 当前系统对象 (CocosCreator<3.0时传cc.sys,CocosCreator>=3.0时传sys)
47
+ * @param reflection 反射对象(打包原生平台时需要设置,CocosCreator<=3.5时传jsb.reflection, CocosCreator>=3.6时传native.reflection)
48
+ * @param logLevel 日志等级(线上环境设置为LOG_ERROR或OFF)
49
+ * @param 是否初始化成功
50
+ */
51
+ static init(sys: any, reflection?: any, logLevel?: LOG_LEVEL): boolean;
52
+
53
+ //初始化SDK
54
+ IG.IGSdk.init(sys, sys.isNative ? jsb.reflection : null, IG.LOG_LEVEL.DEBUG);
55
+ ```
56
+
57
+
58
+
59
+ #### 广告模块
60
+
61
+ ###### 初始化广告SDK
62
+
63
+ 在使用广告模块时,需先初始化广告SDK,具体如下:
64
+
65
+ ```typescript
66
+ /**
67
+ * 初始化广告SDK
68
+ * @param initOpt 初始化可配置参数
69
+ * @param callback 初始化回调
70
+ */
71
+ static init(initOpt: ASWInitOpt, callback?: ASWInitCallback): void;
72
+
73
+ //初始化广告SDK
74
+ let initOpt = new IG.ASWInitOpt();
75
+ initOpt.mediaIdWeb = '11';
76
+ initOpt.mediaIdAndroid = '9';
77
+ initOpt.mediaIdIOS = '10';
78
+ initOpt.mediaId = '11';
79
+ initOpt.channel = "";
80
+ initOpt.customData = "";
81
+ initOpt.showLog = true;
82
+ initOpt.test = true;
83
+ IG.AdSdkWrapper.init(initOpt, (code, msg) => {
84
+ console.log(`Init sdk : code=${code} , msg=${msg}`);
85
+ });
86
+ ```
87
+
88
+ 其中,初始化可配参数ASWInitOpt定义如下:
89
+
90
+ ```typescript
91
+ /**
92
+ * 初始化参数
93
+ */
94
+ export class ASWInitOpt extends InitOpt {
95
+ //Web端媒体id
96
+ public mediaIdWeb: string;
97
+ //Android端媒体id
98
+ public mediaIdAndroid: string;
99
+ //iOS端媒体id
100
+ public mediaIdIOS: string;
101
+ //鸿蒙端媒体id
102
+ public mediaIdOpenHarmony: string;
103
+ }
104
+
105
+ /**
106
+ * 初始化可配置参数
107
+ */
108
+ export class InitOpt {
109
+ //媒体标识(必传)
110
+ public mediaId: string = "";
111
+ //自定义渠道标识。广告数据可以根据自定义渠道进行拆分
112
+ public channel: string = "";
113
+ //自定义数据,最长255字符。激励视频服务端验证时,该数据会回调给服务器
114
+ public customData: string = ""
115
+ // 是否显示日志,默认不显示。线上环境应设置成false
116
+ public showLog: boolean = false;
117
+ //是否打开测试模式。正式上线前请设置为false,否则将不产生收益
118
+ public test: boolean = false;
119
+ }
120
+ ```
121
+
122
+
123
+
124
+ ###### 请求广告
125
+
126
+ ```typescript
127
+ /**
128
+ * 请求广告
129
+ * @param adOpt 请求广告可配置参数
130
+ * @param callback 请求广告回调
131
+ */
132
+ static requestAd(adOpt: ASWAdOpt, callback?: ASWAdCallback): void;
133
+
134
+ //请求广告
135
+ let adOpt = new IG.ASWAdOpt();
136
+ adOpt.adIdWeb = '3';
137
+ adOpt.adIdWechatGame = 'adunit-6c232b47c4cc6f9b';
138
+ adOpt.adIdAndroid = '37';
139
+ adOpt.adType = IG.AD_TYPE.REWARD_VIDEO;
140
+ IG.AdSdkWrapper.requestAd(adOpt, {
141
+ onAdReward(adId) {
142
+ console.log(`ad[${adId}] reward.`);
143
+ },
144
+ });
145
+ ```
146
+
147
+ 其中,请求广告可配置参数ASWAdOpt定义如下:
148
+
149
+ ```typescript
150
+ /**
151
+ * 请求广告参数
152
+ */
153
+ export class ASWAdOpt {
154
+ //广告类型(小游戏使用)
155
+ public adType: AD_TYPE;
156
+ //Web端广告位id
157
+ public adIdWeb: string;
158
+ //Android端广告位id
159
+ public adIdAndroid: string;
160
+ //iOS端广告位id
161
+ public adIdIOS: string;
162
+ //鸿蒙端广告位id
163
+ public adIdOpenHarmony: string;
164
+ //微信小游戏端广告位id
165
+ public adIdWechatGame: string;
166
+ //抖音小游戏端广告位id
167
+ public adIdDouYinGame: string;
168
+ }
169
+ ```
170
+
171
+ 其中,请求广告回调ASWAdCallback定义如下:
172
+
173
+ ```typescript
174
+ /**
175
+ * 请求广告回调接口
176
+ */
177
+ export interface ASWAdCallback {
178
+ /**
179
+ * 加载广告成功回调
180
+ * @param adId 广告位id
181
+ */
182
+ onAdLoad?(adId: string): void;
183
+
184
+ /**
185
+ * 广告曝光回调
186
+ * @param adId 广告位id
187
+ */
188
+ onAdShow?(adId: string): void;
189
+
190
+ /**
191
+ * 广告点击回调(Web平台不一定回调)
192
+ * @param adId 广告位id
193
+ */
194
+ onAdClick?(adId: string): void;
195
+
196
+ /**
197
+ * 激励视频可以奖励回调
198
+ * @param adId 广告位id
199
+ */
200
+ onAdReward?(adId: string): void;
201
+
202
+ /**
203
+ * 激励视频观看完成回调
204
+ * @param adId 广告位id
205
+ */
206
+ onAdComplete?(adId: string): void;
207
+
208
+ /**
209
+ * 广告关闭回调(Web平台不一定回调)
210
+ * @param adId 广告位id
211
+ */
212
+ onAdDismiss?(adId: string): void;
213
+
214
+ /**
215
+ * 广告加载失败回调
216
+ * @param adId 广告位id
217
+ * @param code 错误码
218
+ * @param msg 错误消息
219
+ */
220
+ onAdError?(adId: string, code: number, msg: string): void;
221
+ }
222
+ ```
223
+
224
+
225
+
226
+ #### 网络请求模块
227
+
228
+ ###### 设置HTTP请求配置
229
+
230
+ ```typescript
231
+ /**
232
+ * 设置Http请求配置(请求之前设置)
233
+ * @param httpConfig Http请求配置
234
+ */
235
+ static setConfig(httpConfig: HttpWrapperConfig): void;
236
+
237
+ //构建HTTP请求配置
238
+ let httpConfig = new IG.HttpWrapperConfig();
239
+ httpConfig.baseUrl = 'https://rx.dijikj.com/flkapi/';
240
+ httpConfig.version = '1.1.1';
241
+ httpConfig.channel = 'officail';
242
+ //设置HTTP请求配置
243
+ IG.HttpWrapper.setConfig(httpConfig);
244
+ ```
245
+
246
+ 其中,HTTP配置HttpWrapperConfig定义如下:
247
+
248
+ ```typescript
249
+ /**
250
+ * Http请求配置
251
+ */
252
+ export class HttpWrapperConfig extends HttpConfig {
253
+ //请求基地址
254
+ public baseUrl?: string;
255
+ //客户端版本号
256
+ public version?: string;
257
+ //渠道标识
258
+ public channel?: string;
259
+ //签名前缀
260
+ public signPrefix?: string;
261
+ //AES加密秘钥
262
+ public key?: string;
263
+ //AES加密向量
264
+ public iv?: string;
265
+ }
266
+
267
+ /**
268
+ * Http请求配置
269
+ */
270
+ export class HttpConfig {
271
+ //请求超时时间(ms)
272
+ public timeout: number = 5000;
273
+ }
274
+ ```
275
+
276
+
277
+
278
+ ###### 发起请求
279
+
280
+ ```typescript
281
+ /**
282
+ * GET请求
283
+ * @param path 请求路径
284
+ * @param callback 请求回调
285
+ */
286
+ get<T extends HttpResData>(path: string, callback?: HttpCallbackBean<T>): void;
287
+
288
+ /**
289
+ * POST请求
290
+ * @param path 请求路径
291
+ * @param params 请求参数
292
+ * @param callback 请求回调
293
+ */
294
+ post<T extends HttpResData>(path: string, params?: object, callback?: HttpCallbackBean<T>): void;
295
+
296
+
297
+ //构建回调
298
+ let callback = new IG.HttpCallbackBean<LoginResData>();
299
+ callback.onFail = (code: number, msg: string) => {
300
+ console.error(`Http request fail: code=${code} , msg=${msg}`);
301
+ };
302
+ callback.onRes = (data: LoginResData) => {
303
+ //缓存token
304
+ IG.HttpWrapper.setToken(data.data.token);
305
+ }
306
+ //构建请求参数
307
+ let param = new LoginParam();
308
+ param.type = 1;
309
+ param.mobile = '13617678127';
310
+ param.code = '123454321';
311
+ //发起请求
312
+ new IG.HttpWrapper().post<LoginResData>('user/login', param, callback);
313
+ ```
314
+
315
+
316
+
317
+ #### 加解密模块
318
+
319
+ ```typescript
320
+ /**
321
+ * 加解密工具类
322
+ */
323
+ export class CryptoUtil {
324
+ /**
325
+ * 设置配置(未设置时使用默认秘钥、向量)
326
+ * @param key 秘钥
327
+ * @param iv 向量
328
+ */
329
+ static setKey(key: string, iv?: string): void;
330
+
331
+ /**
332
+ * 获取秘钥
333
+ * @param key 当前设置的秘钥
334
+ * @returns 秘钥
335
+ */
336
+ private static getKey;
337
+
338
+
339
+ /**
340
+ * 获取向量
341
+ * @param iv 当前设置的向量
342
+ * @returns 向量
343
+ */
344
+ private static getIv;
345
+
346
+ /**
347
+ * MD5(32位小写)
348
+ * @param data 需要MD5的数据
349
+ * @returns MD5后的数据
350
+ */
351
+ static md5(data: string): any;
352
+
353
+ /**
354
+ * AES加密
355
+ * @param data 需要AES加密的数据
356
+ * @param key 秘钥(未设置时,使用默认秘钥)
357
+ * @param iv 向量(未设置时,使用默认向量)
358
+ * @returns AES加密后的数据
359
+ */
360
+ static aesEncrypty(data: string, key?: string, iv?: string): any;
361
+
362
+ /**
363
+ * AES解密
364
+ * @param data 需要AES解密的数据
365
+ * @param key 秘钥(未设置时,使用默认秘钥)
366
+ * @param iv 向量(未设置时,使用默认向量)
367
+ * @returns AES解密后的数据
368
+ */
369
+ static aesDecrypt(data: string, key?: string, iv?: string): any;
370
+
371
+ /**
372
+ * Base64加密
373
+ * @param data 需要Base64加密的数据
374
+ * @returns Base64加密后的数据
375
+ */
376
+ static base64Encrpty(data: string): any;
377
+
378
+ /**
379
+ * BASE64 解密
380
+ * @param data 需要Base64解密的数据
381
+ * @returns Base64解密后的数据
382
+ */
383
+ static base64Decrypt(data: string): any;
384
+
385
+ /**
386
+ * 生成符合UUID v4标准的唯一标识(优化版)
387
+ */
388
+ static uuid(): string;
389
+
390
+ }
391
+ ```
392
+
393
+
394
+
395
+ #### 缓存模块
396
+
397
+ ```typescript
398
+ /**
399
+ * 本地存储工具类
400
+ */
401
+ export class StorageUtil {
402
+
403
+ /**
404
+ * 检查是否可以缓存
405
+ * @param key 数据key
406
+ */
407
+ private static checkAvailable;
408
+
409
+ /**
410
+ * 缓存数据
411
+ * @param key 数据key
412
+ * @param data 数据
413
+ */
414
+ static setData(key: string, data: any): void;
415
+
416
+ /**
417
+ * 获取缓存数据
418
+ * @param key 数据key
419
+ * @returns 数据
420
+ */
421
+ static getData(key: string): string | null;
422
+
423
+ /**
424
+ * 安全缓存数据(数据会加密)
425
+ * @param key 数据key
426
+ * @param data 数据
427
+ * @param encryptKey 加密秘钥(未设置时,使用默认秘钥)
428
+ * @param encryptIv 加密向量(未设置时,使用默认向量)
429
+ */
430
+ static setDataSafely(key: string, data: any, encryptKey?: string, encryptIv?: string): void;
431
+
432
+ /**
433
+ * 获取缓存数据(数据会解密)
434
+ * @param key 数据key
435
+ * @param encryptKey 加密秘钥(未设置时,使用默认秘钥)
436
+ * @param encryptIv 加密向量(未设置时,使用默认向量)
437
+ * @returns 数据
438
+ */
439
+ static getDataSafely(key: string, encryptKey?: string, encryptIv?: string): string | null;
440
+
441
+ }
442
+ ```
443
+
package/igsdk.d.ts CHANGED
@@ -1,114 +1,19 @@
1
1
  declare namespace IG {
2
2
 
3
3
  /**
4
- * 客户端类型
4
+ * 广告位置(横幅、模板广告使用)
5
5
  */
6
- export enum CLIENT_TYPE {
7
- UNKNOWN = 0,
8
- ANDROID_APP = 1,
9
- IOS_APP = 2,
10
- HARMONYOS_APP = 3,
11
- WEB = 4,
12
- WECHAT_MINI_GAME = 5,
13
- DOUYIN_MINI_GAME = 6,
14
- ALIPAY_MINI_GAME = 7,
15
- PC_APP = 8,
16
- OTHER = 99
17
- }
18
-
19
- /**
20
- * 操作系统类型
21
- */
22
- export enum OS_TYPE {
23
- UNKNOWN = 0,
24
- ANDROID = 1,
25
- IOS = 2,
26
- HARMONYOS_OS = 3,
27
- WINDOWS = 4,
28
- LINUX = 5,
29
- MAC_OS = 6,
30
- OTHER = 99
31
- }
32
-
33
- /**
34
- * SDK基类
35
- */
36
- export class IGSdk {
37
- private static sys;
38
- private static reflection;
39
- private static inited;
40
- private static clientType;
41
- private static osType;
42
- private constructor();
43
- /**
44
- * 初始化(注:使用SDK功能前调用,只需要调用一次,建议进入首个场景就调用)
45
- * @param sys 当前系统对象 (CocosCreator<3.0时传cc.sys,CocosCreator>=3.0时传sys)
46
- * @param reflection 反射对象(打包原生平台时需要设置,CocosCreator<=3.5时传jsb.reflection, CocosCreator>=3.6时传native.reflection)
47
- * @param logLevel 日志等级
48
- * @param 是否初始化成功
49
- */
50
- static init(sys: any, reflection?: any, logLevel?: LOG_LEVEL): boolean;
51
- /**
52
- * 获取SDK版本号
53
- * @returns SDK版本号
54
- */
55
- static getVersion(): string;
56
- /**
57
- * 检查SDK是否已经初始化
58
- * @returns 是否已经初始化
59
- */
60
- static hasInit(): boolean;
61
- /**
62
- * 获取当前系统对象
63
- * @returns 当前系统对象
64
- */
65
- static getSys(): any;
66
- /**
67
- * 获取反射对象
68
- * @returns 反射对象
69
- */
70
- static getReflection(): any;
71
- /**
72
- * 获取客户端类型
73
- * @returns 客户端类型
74
- */
75
- static getClientType(): CLIENT_TYPE;
76
- /**
77
- * 获取操作系统类型
78
- * @returns 操作系统类型
79
- */
80
- static getOSType(): OS_TYPE;
81
- /**
82
- * 获取当前运行环境的语言代码,例如 "en-US", "zh-CN"。
83
- * @returns 当前运行环境的语言代码
84
- */
85
- static getLanguage(): any;
86
- /**
87
- * 初始化客户端类型
88
- */
89
- private static initClientType;
90
- /**
91
- * 初始化操作系统类型
92
- */
93
- private static initOsType;
94
- }
95
-
96
- /**
97
- * 广告位置(横幅、模板广告使用)
98
- */
99
6
  export enum AdPosition {
100
7
  BOTTOM = 0,
101
8
  CENTER = 1,
102
9
  TOP = 2
103
10
  }
104
-
105
11
  /**
106
12
  * 参数接口
107
13
  */
108
14
  interface IParam {
109
15
  param(): string;
110
16
  }
111
-
112
17
  /**
113
18
  * 初始化可配置参数
114
19
  */
@@ -228,7 +133,6 @@ declare namespace IG {
228
133
  */
229
134
  requestAd(adOpt: AdOpt, callback?: AdCallback): void;
230
135
  }
231
-
232
136
  /**
233
137
  * 广告请求可配置参数
234
138
  */
@@ -414,7 +318,6 @@ declare namespace IG {
414
318
  */
415
319
  shareAppMessage(shareOpt: MiniGameShareOpt): void;
416
320
  }
417
-
418
321
  /**
419
322
  * 广告类型(小游戏使用)
420
323
  */
@@ -504,7 +407,11 @@ declare namespace IG {
504
407
  * 广告SDK
505
408
  */
506
409
  export class AdSdkWrapper {
507
- private static clientType;
410
+ /**
411
+ * 获取客户端类型
412
+ * @returns 客户端类型
413
+ */
414
+ private static getClientType;
508
415
  /**
509
416
  * 初始化广告SDK
510
417
  * @param initOpt 初始化可配置参数
@@ -598,7 +505,6 @@ declare namespace IG {
598
505
  */
599
506
  post(url: string, params?: string, headers?: Object, callback?: IHttpCallback): void;
600
507
  }
601
-
602
508
  /**
603
509
  * Http请求配置
604
510
  */
@@ -864,7 +770,7 @@ declare namespace IG {
864
770
  */
865
771
  static setDataSafely(key: string, data: any, encryptKey?: string, encryptIv?: string): void;
866
772
  /**
867
- * 获取缓存数据(数据会解密)
773
+ * 获取缓存数据
868
774
  * @param key 数据key
869
775
  * @param encryptKey 加密秘钥(未设置时,使用默认秘钥)
870
776
  * @param encryptIv 加密向量(未设置时,使用默认向量)
@@ -872,6 +778,96 @@ declare namespace IG {
872
778
  */
873
779
  static getDataSafely(key: string, encryptKey?: string, encryptIv?: string): string | null;
874
780
  }
781
+ /**
782
+ * 客户端类型
783
+ */
784
+ export enum CLIENT_TYPE {
785
+ UNKNOWN = 0,
786
+ ANDROID_APP = 1,
787
+ IOS_APP = 2,
788
+ HARMONYOS_APP = 3,
789
+ WEB = 4,
790
+ WECHAT_MINI_GAME = 5,
791
+ DOUYIN_MINI_GAME = 6,
792
+ ALIPAY_MINI_GAME = 7,
793
+ PC_APP = 8,
794
+ OTHER = 99
795
+ }
796
+ /**
797
+ * 操作系统类型
798
+ */
799
+ export enum OS_TYPE {
800
+ UNKNOWN = 0,
801
+ ANDROID = 1,
802
+ IOS = 2,
803
+ HARMONYOS_OS = 3,
804
+ WINDOWS = 4,
805
+ LINUX = 5,
806
+ MAC_OS = 6,
807
+ OTHER = 99
808
+ }
809
+ /**
810
+ * SDK基类
811
+ */
812
+ export class IGSdk {
813
+ private static sys;
814
+ private static reflection;
815
+ private static inited;
816
+ private static clientType;
817
+ private static osType;
818
+ private constructor();
819
+ /**
820
+ * 初始化(注:使用SDK功能前调用,只需要调用一次,建议进入首个场景就调用)
821
+ * @param sys 当前系统对象 (CocosCreator<3.0时传cc.sys,CocosCreator>=3.0时传sys)
822
+ * @param reflection 反射对象(打包原生平台时需要设置,CocosCreator<=3.5时传jsb.reflection, CocosCreator>=3.6时传native.reflection)
823
+ * @param logLevel 日志等级(线上环境设置为LOG_ERROR或OFF)
824
+ * @param 是否初始化成功
825
+ */
826
+ static init(sys: any, reflection?: any, logLevel?: LOG_LEVEL): boolean;
827
+ /**
828
+ * 获取SDK版本号
829
+ * @returns SDK版本号
830
+ */
831
+ static getVersion(): string;
832
+ /**
833
+ * 检查SDK是否已经初始化
834
+ * @returns 是否已经初始化
835
+ */
836
+ static hasInit(): boolean;
837
+ /**
838
+ * 获取当前系统对象
839
+ * @returns 当前系统对象
840
+ */
841
+ static getSys(): any;
842
+ /**
843
+ * 获取反射对象
844
+ * @returns 反射对象
845
+ */
846
+ static getReflection(): any;
847
+ /**
848
+ * 获取客户端类型
849
+ * @returns 客户端类型
850
+ */
851
+ static getClientType(): CLIENT_TYPE;
852
+ /**
853
+ * 获取操作系统类型
854
+ * @returns 操作系统类型
855
+ */
856
+ static getOSType(): OS_TYPE;
857
+ /**
858
+ * 获取当前运行环境的语言代码,例如 "en-US", "zh-CN"。
859
+ * @returns 当前运行环境的语言代码
860
+ */
861
+ static getLanguage(): any;
862
+ /**
863
+ * 初始化客户端类型
864
+ */
865
+ private static initClientType;
866
+ /**
867
+ * 初始化操作系统类型
868
+ */
869
+ private static initOsType;
870
+ }
875
871
 
876
872
  }
877
873