react-native-idosdk 1.0.4 → 1.0.6

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +56 -68
  3. package/android/build.gradle +11 -14
  4. package/android/src/main/AndroidManifest.xml +11 -3
  5. package/android/src/main/java/com/getui/{reactnativegetui → reactnativeido}/GetuiIdoModule.java +7 -3
  6. package/android/src/main/java/com/getui/{reactnativegetui → reactnativeido}/GetuiIdoPackage.java +1 -1
  7. package/android/src/main/java/com/getui/{reactnativegetui → reactnativeido}/GetuiLogger.java +1 -1
  8. package/docs/superpowers/plans/2026-07-13-android-getui-maven-dependencies.md +323 -0
  9. package/docs/superpowers/specs/2026-07-13-android-getui-maven-dependencies-design.md +96 -0
  10. package/document/android.md +48 -112
  11. package/document/iOS.md +31 -283
  12. package/package.json +4 -1
  13. package/react-native-harmony-ido/README.md +266 -0
  14. package/react-native-harmony-ido/gt-ido-ohos-plugin-1.0.1.tgz +0 -0
  15. package/react-native-harmony-ido/harmony/BuildProfile.ets +17 -0
  16. package/react-native-harmony-ido/harmony/IdoOhosSdk.har +0 -0
  17. package/react-native-harmony-ido/harmony/Index.ets +1 -0
  18. package/react-native-harmony-ido/harmony/build-profile.json5 +36 -0
  19. package/react-native-harmony-ido/harmony/consumer-rules.txt +0 -0
  20. package/react-native-harmony-ido/harmony/hvigorfile.ts +6 -0
  21. package/react-native-harmony-ido/harmony/libs/getui_ido_1.0.1.har +0 -0
  22. package/react-native-harmony-ido/harmony/obfuscation-rules.txt +23 -0
  23. package/react-native-harmony-ido/harmony/oh-package-lock.json5 +38 -0
  24. package/react-native-harmony-ido/harmony/oh-package.json5 +12 -0
  25. package/react-native-harmony-ido/harmony/src/main/cpp/CMakeLists.txt +7 -0
  26. package/react-native-harmony-ido/harmony/src/main/cpp/IdoModule.cpp +38 -0
  27. package/react-native-harmony-ido/harmony/src/main/cpp/IdoModule.h +21 -0
  28. package/react-native-harmony-ido/harmony/src/main/cpp/IdoPackage.h +76 -0
  29. package/react-native-harmony-ido/harmony/src/main/ets/IdoModule.ets +150 -0
  30. package/react-native-harmony-ido/harmony/src/main/ets/IdoPackage.ets +24 -0
  31. package/react-native-harmony-ido/harmony/src/main/module.json5 +9 -0
  32. package/react-native-harmony-ido/harmony/src/main/resources/base/element/float.json +8 -0
  33. package/react-native-harmony-ido/harmony/src/main/resources/base/element/string.json +8 -0
  34. package/react-native-harmony-ido/harmony/ts.ets +2 -0
  35. package/react-native-harmony-ido/index.ts +4 -0
  36. package/react-native-harmony-ido/package.json +35 -0
  37. package/react-native-harmony-ido/src/specs/v1/NativeIdo.ts +44 -0
  38. package/android/libs/gs-1.4.12.0.jar +0 -0
  39. package/android/libs/gtc-3.2.18.0.jar +0 -0
@@ -0,0 +1,150 @@
1
+ // entry/src/main/ets/turbomodule/CalculatorModule.ts
2
+ import { AnyThreadTurboModule, UITurboModule } from '@rnoh/react-native-openharmony/ts';
3
+ import {Ido, IdoConfig} from "@getui/ido"
4
+ import { common } from '@kit.AbilityKit';
5
+ import { RNOHContext, UITurboModuleContext } from '@rnoh/react-native-openharmony/src/main/ets/RNOH/ts';
6
+ import hilog from '@ohos.hilog';
7
+
8
+ export class IdoModule extends UITurboModule{
9
+ protected _context: common.UIAbilityContext;
10
+ protected _RnContext: RNOHContext;
11
+ protected gtcId: string = '';
12
+
13
+ constructor(ctx: UITurboModuleContext) {
14
+ super(ctx);
15
+ this._context = ctx?.uiAbilityContext;
16
+ this._RnContext = ctx;
17
+ }
18
+ version(cb: (param: string) => void): void{
19
+ cb(Ido.getVersion())
20
+ }
21
+
22
+ startSdk(appid: string, channel: string): void{
23
+ IdoConfig.setAppId(appid)
24
+ IdoConfig.setChannel(channel)
25
+ Ido.preInit(this._context)
26
+ Ido.init(this._context).then((gtcId) => {
27
+ this. gtcId = gtcId
28
+ hilog.info(0x0000, 'IdoModule', 'IDO init Succeeded. GtcId: (%{public}s)', gtcId);
29
+ })
30
+ }
31
+
32
+ gtcid(cb: (param: string) => void): void{
33
+ cb(this.gtcId)
34
+ }
35
+
36
+ setDebugEnable(isEnable: boolean): void{
37
+ IdoConfig.setDebugEnable(isEnable)
38
+ // IdoConfig.setDebugEnable(6)
39
+ hilog.info(0x0000, 'IdoModule', `setDebugEnable ${isEnable}`);
40
+ }
41
+
42
+ setSessionTime(time: number): void{
43
+ IdoConfig.setSessionTimeoutMillis(time)
44
+ }
45
+
46
+ setMinAppActiveDuration(val: number): void{
47
+ IdoConfig.setMinAppActiveDuration(val)
48
+ }
49
+
50
+ setMaxAppActiveDuration(val: number): void{
51
+ IdoConfig.setMaxAppActiveDuration(val)
52
+ }
53
+
54
+ setEventUploadInterval(val: number): void{
55
+ IdoConfig.setEventUploadInterval(val)
56
+ }
57
+
58
+ setEventForceUploadSize(val: number): void{
59
+ IdoConfig.setEventForceUploadSize(val)
60
+ }
61
+
62
+ setProfileUploadInterval(val: number): void{
63
+ IdoConfig.setProfileUploadInterval(val)
64
+ }
65
+
66
+ setProfileForceUploadSize(val: number): void{
67
+ IdoConfig.setProfileForceUploadSize(val)
68
+ }
69
+
70
+ setUserId(val: string): void{
71
+ Ido.setUserId(val)
72
+ }
73
+
74
+ trackCustomKeyValueEventBegin(eventId: string): void{
75
+ Ido.onBeginEvent(eventId)
76
+ }
77
+
78
+ trackCustomKeyValueEventEnd(eventId: string, args: Object, ext: string): void{
79
+
80
+ // 转换前打印原始对象
81
+ hilog.info(0x0000, 'IdoModule', `trackCustomKeyValueEventEnd ${JSON.stringify(args, null, 2)}`);
82
+ // 将 Object 转换为 Map
83
+ const profileMap: Map<string, string | number | Date | boolean> = new Map(
84
+ Object.entries(args).map((entry:[string,object]) => {
85
+ const key = entry[0] as string; // 显式类型断言
86
+ const value = entry[1] as string | number | Date | boolean;
87
+ return [key, value];
88
+ })
89
+ );
90
+
91
+
92
+ // 转换后打印 Map 内容
93
+
94
+ hilog.info(0x0000, 'IdoModule', '转换后的 Map 内容:');
95
+ profileMap.forEach((value, key) => {
96
+ hilog.info(0x0000, 'IdoModule',`Key: ${key}, Value: ${value} (${typeof value})`);
97
+ });
98
+
99
+ Ido.onEndEvent(eventId,profileMap,ext)
100
+
101
+ }
102
+
103
+ trackCountEvent(eventId: string, args: Object, ext: string): void{
104
+
105
+ // 转换前打印原始对象
106
+ hilog.info(0x0000, 'IdoModule', `trackCountEvent ${JSON.stringify(args, null, 2)}`);
107
+ // 将 Object 转换为 Map
108
+ const profileMap: Map<string, string | number | Date | boolean> = new Map(
109
+ Object.entries(args).map((entry:[string,object]) => {
110
+ const key = entry[0] as string; // 显式类型断言
111
+ const value = entry[1] as string | number | Date | boolean;
112
+ return [key, value];
113
+ })
114
+ );
115
+
116
+ // 转换后打印 Map 内容
117
+ hilog.info(0x0000, 'IdoModule', '转换后的 Map 内容:');
118
+ profileMap.forEach((value, key) => {
119
+ hilog.info(0x0000, 'IdoModule',`Key: ${key}, Value: ${value} (${typeof value})`);
120
+ });
121
+
122
+ Ido.onEvent(eventId,profileMap,ext)
123
+ }
124
+
125
+ setProfile(profiles: Object, ext: string): void{
126
+ // 转换前打印原始对象
127
+ hilog.info(0x0000, 'IdoModule', `setProfile ${JSON.stringify(profiles, null, 2)}`);
128
+
129
+ // 将 Object 转换为 Map
130
+ const profileMap: Map<string, string | number | Date | boolean> = new Map(
131
+ Object.entries(profiles).map((entry:[string,object]) => {
132
+ const key = entry[0] as string; // 显式类型断言
133
+ const value = entry[1] as string | number | Date | boolean;
134
+ return [key, value];
135
+ })
136
+ );
137
+
138
+ // 转换后打印 Map 内容
139
+ hilog.info(0x0000, 'IdoModule', '转换后的 Map 内容:');
140
+ profileMap.forEach((value, key) => {
141
+ hilog.info(0x0000, 'IdoModule',`Key: ${key}, Value: ${value} (${typeof value})`);
142
+ });
143
+
144
+
145
+ // 调用原方法
146
+ Ido.onProfile(profileMap, ext);
147
+ }
148
+
149
+ }
150
+
@@ -0,0 +1,24 @@
1
+ // entry/src/main/ets/GeneratedPackage.ets
2
+ import {
3
+ RNOHPackage,
4
+ AnyThreadTurboModule,
5
+ AnyThreadTurboModuleContext,
6
+ UITurboModule,
7
+ UITurboModuleContext
8
+ } from '@rnoh/react-native-openharmony';
9
+
10
+ import { IdoModule } from './IdoModule';
11
+
12
+ export class IdoPackage extends RNOHPackage {
13
+ override getUITurboModuleFactoryByNameMap(): Map<string, (ctx: UITurboModuleContext) => UITurboModule | null> {
14
+ return new Map<string, ((ctx: UITurboModuleContext) => UITurboModule)>()
15
+ .set("IdoModule", (ctx) => new IdoModule(ctx))
16
+ }
17
+
18
+
19
+ override async createEagerUITurboModuleByNameMap(ctx: UITurboModuleContext): Promise<Map<string, UITurboModule>> {
20
+ const calculatorModule = new IdoModule(ctx);
21
+ return new Map()
22
+ .set("IdoModule", calculatorModule)
23
+ }
24
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "module": {
3
+ "name": "IdoOhosSdk",
4
+ "type": "har",
5
+ "deviceTypes": [
6
+ "default"
7
+ ]
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "float": [
3
+ {
4
+ "name": "page_text_font_size",
5
+ "value": "50fp"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "string": [
3
+ {
4
+ "name": "page_show",
5
+ "value": "page from package"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './src/main/ets/IdoPackage'
2
+ export * from './src/main/ets/IdoModule'
@@ -0,0 +1,4 @@
1
+ // index.ts
2
+ import NativeIdo from "./src/specs/v1/NativeIdo";
3
+
4
+ export const GetuiIdo = NativeIdo;
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "gt-ido-ohos-plugin",
3
+ "version": "1.0.1",
4
+ "description": "ido for ohos",
5
+ "main": "index.ts",
6
+ "keywords": [],
7
+ "author": "yangshgetui",
8
+ "license": "ISC",
9
+ "harmony": {
10
+ "alias": "gt-ido-ohos-plugin",
11
+ "codegenConfig": [
12
+ {
13
+ "version": 1,
14
+ "specPaths": [
15
+ "./src/specs/v1"
16
+ ],
17
+ "des": "version:表示版本,需要强调一下,这里的版本并没有新旧之说,它们只是使用场景不同而已。\"version\": 1 适用于创建 TurboModule 或者是 ArkTS 组件的场景;\n\"version\": 2 则适用于创建 CAPI 组件的场景。"
18
+ }
19
+ ]
20
+ },
21
+ "files": [
22
+ "index.ts",
23
+ "src/*",
24
+ "harmony"
25
+ ],
26
+ "peerDependencies": {
27
+ "react": "*",
28
+ "react-native": "*"
29
+ },
30
+ "devDependencies": {
31
+ "@types/react": "^18.2.47",
32
+ "react": "18.2.0",
33
+ "react-native": "0.72.5"
34
+ }
35
+ }
@@ -0,0 +1,44 @@
1
+ // NativeCalculator.ts
2
+ import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
3
+ import { TurboModuleRegistry } from 'react-native';
4
+
5
+
6
+ export interface Spec extends TurboModule {
7
+
8
+ startSdk(appid: string, channel: string): void;
9
+
10
+ gtcid(cb: (param: string) => void): void;
11
+
12
+ version(cb: (param: string) => void): void;
13
+
14
+ setDebugEnable(isEnable: boolean): void;
15
+
16
+ setSessionTime(time: number): void;
17
+
18
+ setMinAppActiveDuration(val: number): void;
19
+
20
+ setMaxAppActiveDuration(val: number): void;
21
+
22
+ setEventUploadInterval(val: number): void;
23
+
24
+ setEventForceUploadSize(val: number): void;
25
+
26
+ setProfileUploadInterval(val: number): void;
27
+
28
+ setProfileForceUploadSize(val: number): void;
29
+
30
+ setUserId(val: string): void;
31
+
32
+ trackCustomKeyValueEventBegin(eventId: string): void;
33
+
34
+ trackCustomKeyValueEventEnd(eventId: string, args:{[key: string]: string|number|boolean}, ext: string): void;
35
+
36
+ trackCountEvent(eventId: string, args:{[key: string]: string|number|boolean}, ext: string): void;
37
+
38
+ setProfile(profiles: {[key: string]: string|number|boolean}, ext: string): void;
39
+
40
+ }
41
+
42
+ export default TurboModuleRegistry.get<Spec>(
43
+ 'IdoModule',
44
+ ) as Spec | null;
Binary file
Binary file