@jolibox/implement 1.1.4-beta.7 → 1.1.4-beta.8

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.
@@ -16,9 +16,16 @@ const onLevelFinished = createAPI('levelFinished', {
16
16
  implement: async (levelId, parmas) => {
17
17
  const { result, duration } = parmas;
18
18
  logger.info(`onLevelFinished`, result, duration);
19
- return taskTracker.reporter({
20
- event: 'COMPLETE_QUEST'
21
- });
19
+ await Promise.all([
20
+ taskTracker.reporter({
21
+ event: 'COMPLETE_GAME_LEVEL'
22
+ }),
23
+ taskTracker.tracker('LevelFinished', {
24
+ levelId,
25
+ result,
26
+ duration
27
+ })
28
+ ]);
22
29
  }
23
30
  });
24
31
 
@@ -31,15 +38,19 @@ const onTaskFinished = createAPI('taskFinished', {
31
38
  ),
32
39
  implement: async (taskId, params) => {
33
40
  const { duration } = params;
34
- logger.info(`onTaskFinished`, duration);
41
+ await taskTracker.tracker('TaskFinished', {
42
+ duration,
43
+ taskId
44
+ });
35
45
  }
36
46
  });
37
47
 
38
48
  const onLevelUpgrade = createAPI('levelUpgrade', {
39
49
  paramsSchema: t.tuple(t.string(), t.string()),
40
50
  implement: async (levelId, name) => {
41
- return await taskTracker.reporter({
42
- event: 'COMPLETE_QUEST'
51
+ return await taskTracker.tracker('LevelUpgrade', {
52
+ name,
53
+ levelId
43
54
  });
44
55
  }
45
56
  });
@@ -47,14 +58,18 @@ const onLevelUpgrade = createAPI('levelUpgrade', {
47
58
  const onHistoryUserLevel = createAPI('onHistoryUserLevel', {
48
59
  paramsSchema: t.tuple(t.number()),
49
60
  implement: async (level) => {
50
- logger.info('onHistoryUserLevel', level);
61
+ return await taskTracker.tracker('HistoryUserLevel', {
62
+ level
63
+ });
51
64
  }
52
65
  });
53
66
 
54
67
  const onHistoryUserScore = createAPI('onHistoryUserScore', {
55
68
  paramsSchema: t.tuple(t.number()),
56
69
  implement: async (score) => {
57
- logger.info('onHistoryUserScore', score);
70
+ return await taskTracker.tracker('HistoryUserScore', {
71
+ score
72
+ });
58
73
  }
59
74
  });
60
75
 
@@ -90,36 +105,25 @@ const onTaskEvent = createAPI('taskEvent', {
90
105
  ),
91
106
  implement: async (taskId, params) => {
92
107
  if (params.tools?.length) {
93
- return await taskTracker.reporter({
94
- event: 'USE_GAME_ITEM'
95
- });
108
+ await Promise.all([
109
+ taskTracker.reporter({
110
+ event: 'USE_GAME_ITEM'
111
+ }),
112
+ taskTracker.tracker('UseGameItem', {
113
+ taskId,
114
+ ...params
115
+ })
116
+ ]);
96
117
  }
97
118
  }
98
119
  });
99
120
 
100
- const onTaskPayment = createAPI('taskPayment', {
101
- paramsSchema: t.tuple(
102
- t.string(),
103
- t.object({
104
- id: t.string(),
105
- amount: t.number(),
106
- unit: t.string()
107
- })
108
- ),
109
- implement: async () => {
110
- return await taskTracker.reporter({
111
- event: 'IN_GAME_PURCHASES'
112
- });
113
- }
114
- });
115
-
116
121
  commands.registerCommand('TaskTrackerSDK.levelFinished', onLevelFinished);
117
122
  commands.registerCommand('TaskTrackerSDK.taskFinished', onTaskFinished);
118
123
  commands.registerCommand('TaskTrackerSDK.levelUpgrade', onLevelUpgrade);
119
124
  commands.registerCommand('TaskTrackerSDK.historyUserLevel', onHistoryUserLevel);
120
125
  commands.registerCommand('TaskTrackerSDK.historyUserScore', onHistoryUserScore);
121
126
  commands.registerCommand('TaskTrackerSDK.taskEvent', onTaskEvent);
122
- commands.registerCommand('TaskTrackerSDK.taskPayment', onTaskPayment);
123
127
 
124
128
  registerCanIUse('TaskTrackerSDK.onLevelFinished', {
125
129
  version: '1.0.0',
@@ -184,14 +188,3 @@ registerCanIUse('TaskTrackerSDK.onTaskEvent', {
184
188
  }
185
189
  }
186
190
  });
187
-
188
- registerCanIUse('TaskTrackerSDK.onTaskPayment', {
189
- version: '1.0.0',
190
- properties: {
191
- taskId: '1.0.0',
192
- params: {
193
- amount: '1.0.0',
194
- unit: '1.0.0'
195
- }
196
- }
197
- });
@@ -12,8 +12,8 @@ const commonParams: CommonReportConfig = {
12
12
  type: EProject.WebSDK,
13
13
  platform: 'h5',
14
14
  jssdk_version: context.sdkInfo.jssdkVersion,
15
- source_id: context.game_id,
16
- source_version: context.game_version
15
+ mp_id: context.mpId,
16
+ mp_version: context.mpVersion
17
17
  };
18
18
 
19
19
  const { track, trackPerformance } = createTracks((...args) => {
@@ -28,8 +28,8 @@ const { track, trackPerformance } = createTracks((...args) => {
28
28
  : {};
29
29
  const extra = {
30
30
  ...originExtra,
31
- source_id: (_data.source_id as string) ?? '',
32
- source_version: (_data.source_version as string) ?? ''
31
+ mp_id: (_data.mp_id as string) ?? '',
32
+ mp_version: (_data.mp_version as string) ?? ''
33
33
  };
34
34
  const eventBody: IEvent = {
35
35
  name: data.tag,
@@ -17,8 +17,8 @@ export class H5TaskTracker extends TaskTracker {
17
17
 
18
18
  constructor(track: Track, eventEmitter: EventEmitter<{ visible: [boolean] }>, interval?: number) {
19
19
  super(eventEmitter, interval);
20
- this.gameId = context.game_id;
21
- this.sessionId = context.session_id;
20
+ this.gameId = context.mpId;
21
+ this.sessionId = context.sessionId;
22
22
  this.track = track;
23
23
  }
24
24
 
@@ -0,0 +1,52 @@
1
+ import { createCommands, logger } from '@jolibox/common';
2
+ import { createSyncAPI, registerCanIUse } from './base';
3
+
4
+ const commands = createCommands();
5
+
6
+ const adInit = createSyncAPI('adInit', {
7
+ implement: (config) => {
8
+ logger.log('[JoliboxAdsSDK] adInit', config);
9
+ }
10
+ });
11
+
12
+ const adConfig = createSyncAPI('adConfig', {
13
+ implement: (params) => {
14
+ logger.log('[JoliboxAdsSDK] adConfig', params);
15
+ }
16
+ });
17
+
18
+ const adBreak = createSyncAPI('adBreak', {
19
+ implement: (params) => {
20
+ logger.log('[JoliboxAdsSDK] adBreak', params);
21
+ }
22
+ });
23
+
24
+ const adUnit = createSyncAPI('adUnit', {
25
+ implement: (params) => {
26
+ logger.log('[JoliboxAdsSDK] adUnit', params);
27
+ }
28
+ });
29
+
30
+ commands.registerCommand('AdsSDK.init', adInit);
31
+
32
+ commands.registerCommand('AdsSDK.adConfig', adConfig);
33
+
34
+ commands.registerCommand('AdsSDK.adBreak', adBreak);
35
+
36
+ commands.registerCommand('AdsSDK.adUnit', adUnit);
37
+
38
+ registerCanIUse('AdsSDK.init', {
39
+ version: '1.0.0'
40
+ });
41
+
42
+ registerCanIUse('AdsSDK.adConfig', {
43
+ version: '1.0.0'
44
+ });
45
+
46
+ registerCanIUse('AdsSDK.adBreak', {
47
+ version: '1.0.0'
48
+ });
49
+
50
+ registerCanIUse('AdsSDK.adUnit', {
51
+ version: '1.0.0'
52
+ });
@@ -5,3 +5,4 @@ import './storage';
5
5
  import './keyboard';
6
6
  import './task';
7
7
  import './login';
8
+ import './ads';
@@ -6,8 +6,8 @@ import { nativeTaskEmitter } from '../report';
6
6
 
7
7
  const EXIT_GAME = 'exitGame';
8
8
  const ON_READY = 'onReady';
9
- const ON_GAME_SHOW = 'onGameShow';
10
- const ON_GAME_HIDE = 'onGameHide';
9
+ const ON_SHOW = 'onJoliboxShow';
10
+ const ON_HIDE = 'onJoliboxHide';
11
11
 
12
12
  const commands = createCommands();
13
13
 
@@ -22,7 +22,7 @@ const exitGame = createAPI(EXIT_GAME, {
22
22
  }
23
23
  });
24
24
 
25
- const onGameShow = createSyncAPI(ON_GAME_SHOW, {
25
+ const onShow = createSyncAPI(ON_SHOW, {
26
26
  paramsSchema: t.tuple(t.function()),
27
27
  implement(callback) {
28
28
  const safeCallback = safeCallbackWrapper(callback);
@@ -33,7 +33,7 @@ const onGameShow = createSyncAPI(ON_GAME_SHOW, {
33
33
  }
34
34
  });
35
35
 
36
- const onGameHide = createSyncAPI(ON_GAME_HIDE, {
36
+ const onHide = createSyncAPI(ON_HIDE, {
37
37
  paramsSchema: t.tuple(t.function()),
38
38
  implement(callback) {
39
39
  const safeCallback = safeCallbackWrapper(callback);
@@ -56,8 +56,8 @@ const onReadyHandler = createSyncAPI(ON_READY, {
56
56
 
57
57
  commands.registerCommand('LifecycleSDK.exit', exitGame);
58
58
  commands.registerCommand('LifecycleSDK.onReady', onReadyHandler);
59
- commands.registerCommand('LifecycleSDK.onJoliboxShow', onGameShow);
60
- commands.registerCommand('LifecycleSDK.onJoliboxHide', onGameHide);
59
+ commands.registerCommand('LifecycleSDK.onJoliboxShow', onShow);
60
+ commands.registerCommand('LifecycleSDK.onJoliboxHide', onHide);
61
61
 
62
62
  registerCanIUse('lifeCycle.exit', {
63
63
  version: '1.0.0' // mock
@@ -67,10 +67,10 @@ registerCanIUse('lifeCycle.onReady', {
67
67
  version: '1.0.0' // mock
68
68
  });
69
69
 
70
- registerCanIUse('lifeCycle.onGameShow', {
70
+ registerCanIUse('lifeCycle.onJoliboxShow', {
71
71
  version: '1.0.0' // mock
72
72
  });
73
73
 
74
- registerCanIUse('lifeCycle.onGameHide', {
74
+ registerCanIUse('lifeCycle.onJoliboxHide', {
75
75
  version: '1.0.0' // mock
76
76
  });
@@ -25,7 +25,9 @@ registerCanIUse('checkSession', {
25
25
 
26
26
  const login = createAPI('login', {
27
27
  async implement() {
28
- const isLogin = await applyNative('checkLoginAsync');
28
+ const {
29
+ data: { isLogin }
30
+ } = await applyNative('checkLoginAsync');
29
31
  if (isLogin) {
30
32
  return { isLogin: true, token: context.hostUserInfo?.token };
31
33
  }
@@ -15,7 +15,7 @@ const getStorage = createAPI('getLocalStorage', {
15
15
  key: string;
16
16
  value: string | null;
17
17
  }>
18
- >(`/api/games/user-storage/${context.game_id}`, {
18
+ >(`/api/games/user-storage/${context.mpId}`, {
19
19
  method: 'GET',
20
20
  responseType: 'json',
21
21
  appendHostCookie: true,
@@ -68,7 +68,7 @@ registerCanIUse('storage.getItem', {
68
68
  const setStorage = createAPI('setStorage', {
69
69
  paramsSchema: t.tuple(t.string(), t.or(t.string(), t.boolean(), t.number())),
70
70
  async implement(key, value) {
71
- const gameId = context.game_id;
71
+ const gameId = context.mpId;
72
72
  const valueToStore = typeof value == 'string' ? value : String(value);
73
73
  const { response } = await fetch<StorageResponse<void>>(`/api/games/user-storage/${gameId}`, {
74
74
  method: 'POST',
@@ -122,7 +122,7 @@ registerCanIUse('storage.setItem', {
122
122
  export const removeStorage = createAPI('removeStorage', {
123
123
  paramsSchema: t.tuple(t.string()),
124
124
  async implement(key) {
125
- const gameId = context.game_id;
125
+ const gameId = context.mpId;
126
126
  const { response } = await fetch<StorageResponse<void>>(`/api/games/user-storage/${gameId}/remove`, {
127
127
  method: 'POST',
128
128
  responseType: 'json',
@@ -164,7 +164,7 @@ registerCanIUse('storage.removeItem', {
164
164
  */
165
165
  const clearStorage = createAPI('clearStorage', {
166
166
  async implement() {
167
- const gameId = context.game_id;
167
+ const gameId = context.mpId;
168
168
  const { response } = await fetch<StorageResponse<void>>(`/api/games/user-storage/${gameId}/clear`, {
169
169
  method: 'POST',
170
170
  appendHostCookie: true
@@ -17,19 +17,16 @@ const onLevelFinished = createAPI('levelFinished', {
17
17
  const { result, duration } = parmas;
18
18
  const tasks = [];
19
19
  tasks.push(
20
- taskTracker.reportToNative({
21
- event: 'LEVEL_FINISHED',
22
- params: {
23
- levelId,
24
- result,
25
- duration
26
- }
20
+ taskTracker.tracker('LevelFinished', {
21
+ levelId,
22
+ result,
23
+ duration
27
24
  })
28
25
  );
29
26
 
30
27
  tasks.push(
31
28
  taskTracker.reporter({
32
- event: 'COMPLETE_QUEST'
29
+ event: 'COMPLETE_GAME_LEVEL'
33
30
  })
34
31
  );
35
32
  await Promise.all(tasks);
@@ -46,7 +43,7 @@ const onTaskFinished = createAPI('taskFinished', {
46
43
  implement: async (taskId, params) => {
47
44
  const { duration } = params;
48
45
  return await taskTracker.reportToNative({
49
- event: 'TASK_FINISHED',
46
+ event: 'TaskFinished',
50
47
  params: {
51
48
  duration,
52
49
  taskId
@@ -59,14 +56,9 @@ const onLevelUpgrade = createAPI('levelUpgrade', {
59
56
  paramsSchema: t.tuple(t.string(), t.string()),
60
57
  implement: async (levelId, name) => {
61
58
  const tasks = [];
62
- tasks.push(
63
- taskTracker.reporter({
64
- event: 'COMPLETE_QUEST'
65
- })
66
- );
67
59
  tasks.push(
68
60
  taskTracker.reportToNative({
69
- event: 'LEVEL_UPGRADE',
61
+ event: 'LevelUpgrade',
70
62
  params: {
71
63
  name,
72
64
  levelId
@@ -81,7 +73,7 @@ const onHistoryUserLevel = createAPI('onHistoryUserLevel', {
81
73
  paramsSchema: t.tuple(t.number()),
82
74
  implement: async (level) => {
83
75
  return await taskTracker.reportToNative({
84
- event: 'HISTORY_USER_LEVEL',
76
+ event: 'HistoryUserLevel',
85
77
  params: {
86
78
  level
87
79
  }
@@ -93,7 +85,7 @@ const onHistoryUserScore = createAPI('onHistoryUserScore', {
93
85
  paramsSchema: t.tuple(t.number()),
94
86
  implement: async (score) => {
95
87
  return await taskTracker.reportToNative({
96
- event: 'HISTORY_USER_SCORE',
88
+ event: 'HistoryUserScore',
97
89
  params: {
98
90
  score
99
91
  }
@@ -135,7 +127,7 @@ const onTaskEvent = createAPI('taskEvent', {
135
127
  const tasks = [];
136
128
  tasks.push(
137
129
  taskTracker.reportToNative({
138
- event: 'TASK_EVENT',
130
+ event: 'TaskEvent',
139
131
  params: {
140
132
  taskId,
141
133
  ...params
@@ -149,47 +141,26 @@ const onTaskEvent = createAPI('taskEvent', {
149
141
  event: 'USE_GAME_ITEM'
150
142
  })
151
143
  );
144
+ tasks.push(
145
+ taskTracker.reportToNative({
146
+ event: 'UseGameItem',
147
+ params: {
148
+ taskId,
149
+ ...params
150
+ }
151
+ })
152
+ );
152
153
  }
153
154
  await Promise.all(tasks);
154
155
  }
155
156
  });
156
157
 
157
- const onTaskPayment = createAPI('taskPayment', {
158
- paramsSchema: t.tuple(
159
- t.string(),
160
- t.object({
161
- id: t.string(),
162
- amount: t.number(),
163
- unit: t.string()
164
- })
165
- ),
166
- implement: async (taskId, params) => {
167
- const tasks = [];
168
- tasks.push(
169
- taskTracker.reportToNative({
170
- event: 'TASK_PAYMENT',
171
- params: {
172
- taskId,
173
- params
174
- }
175
- })
176
- );
177
- tasks.push(
178
- taskTracker.reporter({
179
- event: 'IN_GAME_PURCHASES'
180
- })
181
- );
182
- await Promise.all(tasks);
183
- }
184
- });
185
-
186
158
  commands.registerCommand('TaskTrackerSDK.levelFinished', onLevelFinished);
187
159
  commands.registerCommand('TaskTrackerSDK.taskFinished', onTaskFinished);
188
160
  commands.registerCommand('TaskTrackerSDK.levelUpgrade', onLevelUpgrade);
189
161
  commands.registerCommand('TaskTrackerSDK.historyUserLevel', onHistoryUserLevel);
190
162
  commands.registerCommand('TaskTrackerSDK.historyUserScore', onHistoryUserScore);
191
163
  commands.registerCommand('TaskTrackerSDK.taskEvent', onTaskEvent);
192
- commands.registerCommand('TaskTrackerSDK.taskPayment', onTaskPayment);
193
164
 
194
165
  registerCanIUse('TaskTrackerSDK.onLevelFinished', {
195
166
  version: '1.0.0',
@@ -254,14 +225,3 @@ registerCanIUse('TaskTrackerSDK.onTaskEvent', {
254
225
  }
255
226
  }
256
227
  });
257
-
258
- registerCanIUse('TaskTrackerSDK.onTaskPayment', {
259
- version: '1.0.0',
260
- properties: {
261
- taskId: '1.0.0',
262
- params: {
263
- amount: '1.0.0',
264
- unit: '1.0.0'
265
- }
266
- }
267
- });
@@ -14,6 +14,7 @@ RuntimeLoader.doExit(() => {
14
14
  track('onBeforeExit', {
15
15
  timestamp: Date.now()
16
16
  });
17
+ taskTracker.close(Date.now() - start_timestamp);
17
18
  return false; // 默认不打断退出
18
19
  });
19
20
 
@@ -15,8 +15,8 @@ const reportNative: ReportHandler = (event, data, webviewId) => {
15
15
  : {};
16
16
  const extra = {
17
17
  ...originExtra,
18
- source_id: (_data.source_id as string) ?? '',
19
- source_version: (_data.source_version as string) ?? ''
18
+ mp_id: (_data.mp_id as string) ?? '',
19
+ mp_version: (_data.mp_version as string) ?? ''
20
20
  };
21
21
  invokeNative('trackAsync', {
22
22
  event,
@@ -29,8 +29,8 @@ const { track, trackPerformance } = createTracks(reportNative, {
29
29
  type: EProject.AppSDK,
30
30
  platform: 'native',
31
31
  jssdk_version: context.sdkInfo?.jssdkVersion ?? '1.0.0',
32
- source_id: context.game_id,
33
- source_version: context.game_version
32
+ mp_id: context.mpId,
33
+ mp_version: context.mpVersion
34
34
  });
35
35
 
36
36
  export { track, trackPerformance };
@@ -11,15 +11,15 @@ import type { Track } from '.';
11
11
  import type { TrackEvent } from '@jolibox/types';
12
12
 
13
13
  type NativeTaskPointEvent =
14
- | 'OPEN_GAME'
15
- | 'CLOSE_GAME'
16
- | 'LEVEL_FINISHED'
17
- | 'TASK_FINISHED'
18
- | 'LEVEL_UPGRADE'
19
- | 'HISTORY_USER_LEVEL'
20
- | 'HISTORY_USER_SCORE'
21
- | 'TASK_PAYMENT'
22
- | 'TASK_EVENT';
14
+ | 'OpenGame'
15
+ | 'CloseGame'
16
+ | 'LevelFinished'
17
+ | 'TaskFinished'
18
+ | 'LevelUpgrade'
19
+ | 'HistoryUserLevel'
20
+ | 'HistoryUserScore'
21
+ | 'UseGameItem'
22
+ | 'TaskEvent';
23
23
 
24
24
  export type NativeTaskPoint = {
25
25
  event: NativeTaskPointEvent;
@@ -32,8 +32,8 @@ export class NativeTaskTracker extends TaskTracker {
32
32
 
33
33
  constructor(track: Track, eventEmitter: EventEmitter<{ visible: [boolean] }>, interval?: number) {
34
34
  super(eventEmitter, interval);
35
- this.gameId = context.game_id;
36
- this.sessionId = context.session_id;
35
+ this.gameId = context.mpId;
36
+ this.sessionId = context.sessionId;
37
37
  this.track = track;
38
38
  }
39
39
  async reporter(point: TaskPoint): Promise<void> {
@@ -3,15 +3,15 @@ import { Env, ISystemInfo } from '@jolibox/types';
3
3
  declare global {
4
4
  namespace jsb.service {
5
5
  type NativeTaskPointEvent =
6
- | 'OPEN_GAME'
7
- | 'CLOSE_GAME'
8
- | 'LEVEL_FINISHED'
9
- | 'TASK_FINISHED'
10
- | 'LEVEL_UPGRADE'
11
- | 'HISTORY_USER_LEVEL'
12
- | 'HISTORY_USER_SCORE'
13
- | 'TASK_PAYMENT'
14
- | 'TASK_EVENT';
6
+ | 'OpenGame'
7
+ | 'CloseGame'
8
+ | 'LevelFinished'
9
+ | 'TaskFinished'
10
+ | 'LevelUpgrade'
11
+ | 'HistoryUserLevel'
12
+ | 'HistoryUserScore'
13
+ | 'UseGameItem'
14
+ | 'TaskEvent';
15
15
  interface NativeMethodMap {
16
16
  prefetchImages: (params: {
17
17
  /** 需要预下载的图片 url */