@norcy/react-native-toolkit 0.2.1 → 0.2.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.
Files changed (135) hide show
  1. package/.github/workflows/publish-on-main.yml +2 -2
  2. package/.husky/pre-commit +2 -0
  3. package/lib/commonjs/AppBadgeContext.js +2 -2
  4. package/lib/commonjs/AppBadgeContext.js.map +1 -1
  5. package/lib/commonjs/AppLink.js +4 -6
  6. package/lib/commonjs/AppLink.js.map +1 -1
  7. package/lib/commonjs/AppleLoginUtil.js.map +1 -1
  8. package/lib/commonjs/ConfigDataModel.js +5 -7
  9. package/lib/commonjs/ConfigDataModel.js.map +1 -1
  10. package/lib/commonjs/DevConfig.js +1 -2
  11. package/lib/commonjs/DevConfig.js.map +1 -1
  12. package/lib/commonjs/Frequence.js +5 -13
  13. package/lib/commonjs/Frequence.js.map +1 -1
  14. package/lib/commonjs/LoginManager.js +53 -68
  15. package/lib/commonjs/LoginManager.js.map +1 -1
  16. package/lib/commonjs/MessageModel.js +5 -8
  17. package/lib/commonjs/MessageModel.js.map +1 -1
  18. package/lib/commonjs/Notification.js.map +1 -1
  19. package/lib/commonjs/PlatformHelper.js +18 -0
  20. package/lib/commonjs/PlatformHelper.js.map +1 -0
  21. package/lib/commonjs/PrefData.js +2 -3
  22. package/lib/commonjs/PrefData.js.map +1 -1
  23. package/lib/commonjs/ReportUtil.js +4 -5
  24. package/lib/commonjs/ReportUtil.js.map +1 -1
  25. package/lib/commonjs/SentryManager.js +4 -7
  26. package/lib/commonjs/SentryManager.js.map +1 -1
  27. package/lib/commonjs/SyncPrefData.js +5 -19
  28. package/lib/commonjs/SyncPrefData.js.map +1 -1
  29. package/lib/commonjs/Tool.js +54 -27
  30. package/lib/commonjs/Tool.js.map +1 -1
  31. package/lib/commonjs/VersionManager.js +7 -9
  32. package/lib/commonjs/VersionManager.js.map +1 -1
  33. package/lib/commonjs/VipAndroidManager.js +7 -9
  34. package/lib/commonjs/VipAndroidManager.js.map +1 -1
  35. package/lib/commonjs/VipManager.js +46 -38
  36. package/lib/commonjs/VipManager.js.map +1 -1
  37. package/lib/commonjs/WeChatLoginUtil.js +5 -6
  38. package/lib/commonjs/WeChatLoginUtil.js.map +1 -1
  39. package/lib/commonjs/constant.js.map +1 -1
  40. package/lib/commonjs/index.js +12 -0
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/commonjs/package.json +1 -0
  43. package/lib/module/AppBadgeContext.js +3 -1
  44. package/lib/module/AppBadgeContext.js.map +1 -1
  45. package/lib/module/AppLink.js +5 -5
  46. package/lib/module/AppLink.js.map +1 -1
  47. package/lib/module/AppleLoginUtil.js +2 -0
  48. package/lib/module/AppleLoginUtil.js.map +1 -1
  49. package/lib/module/ConfigDataModel.js +7 -7
  50. package/lib/module/ConfigDataModel.js.map +1 -1
  51. package/lib/module/DevConfig.js +3 -2
  52. package/lib/module/DevConfig.js.map +1 -1
  53. package/lib/module/Frequence.js +7 -13
  54. package/lib/module/Frequence.js.map +1 -1
  55. package/lib/module/LoginManager.js +55 -68
  56. package/lib/module/LoginManager.js.map +1 -1
  57. package/lib/module/MessageModel.js +7 -8
  58. package/lib/module/MessageModel.js.map +1 -1
  59. package/lib/module/Notification.js +2 -0
  60. package/lib/module/Notification.js.map +1 -1
  61. package/lib/module/PlatformHelper.js +15 -0
  62. package/lib/module/PlatformHelper.js.map +1 -0
  63. package/lib/module/PrefData.js +3 -2
  64. package/lib/module/PrefData.js.map +1 -1
  65. package/lib/module/ReportUtil.js +6 -5
  66. package/lib/module/ReportUtil.js.map +1 -1
  67. package/lib/module/SentryManager.js +5 -5
  68. package/lib/module/SentryManager.js.map +1 -1
  69. package/lib/module/SyncPrefData.js +8 -19
  70. package/lib/module/SyncPrefData.js.map +1 -1
  71. package/lib/module/Tool.js +53 -24
  72. package/lib/module/Tool.js.map +1 -1
  73. package/lib/module/VersionManager.js +8 -8
  74. package/lib/module/VersionManager.js.map +1 -1
  75. package/lib/module/VipAndroidManager.js +7 -6
  76. package/lib/module/VipAndroidManager.js.map +1 -1
  77. package/lib/module/VipManager.js +47 -37
  78. package/lib/module/VipManager.js.map +1 -1
  79. package/lib/module/WeChatLoginUtil.js +6 -4
  80. package/lib/module/WeChatLoginUtil.js.map +1 -1
  81. package/lib/module/constant.js +2 -0
  82. package/lib/module/constant.js.map +1 -1
  83. package/lib/module/index.js +3 -0
  84. package/lib/module/index.js.map +1 -1
  85. package/lib/module/package.json +1 -0
  86. package/lib/typescript/AppBadgeContext.d.ts +1 -0
  87. package/lib/typescript/AppBadgeContext.d.ts.map +1 -0
  88. package/lib/typescript/AppLink.d.ts +1 -0
  89. package/lib/typescript/AppLink.d.ts.map +1 -0
  90. package/lib/typescript/AppleLoginUtil.d.ts +1 -0
  91. package/lib/typescript/AppleLoginUtil.d.ts.map +1 -0
  92. package/lib/typescript/ConfigDataModel.d.ts +1 -0
  93. package/lib/typescript/ConfigDataModel.d.ts.map +1 -0
  94. package/lib/typescript/DevConfig.d.ts +1 -0
  95. package/lib/typescript/DevConfig.d.ts.map +1 -0
  96. package/lib/typescript/Frequence.d.ts +1 -0
  97. package/lib/typescript/Frequence.d.ts.map +1 -0
  98. package/lib/typescript/LoginManager.d.ts +2 -1
  99. package/lib/typescript/LoginManager.d.ts.map +1 -0
  100. package/lib/typescript/MessageModel.d.ts +1 -0
  101. package/lib/typescript/MessageModel.d.ts.map +1 -0
  102. package/lib/typescript/Notification.d.ts +1 -0
  103. package/lib/typescript/Notification.d.ts.map +1 -0
  104. package/lib/typescript/PlatformHelper.d.ts +6 -0
  105. package/lib/typescript/PlatformHelper.d.ts.map +1 -0
  106. package/lib/typescript/PrefData.d.ts +1 -0
  107. package/lib/typescript/PrefData.d.ts.map +1 -0
  108. package/lib/typescript/ReportUtil.d.ts +1 -0
  109. package/lib/typescript/ReportUtil.d.ts.map +1 -0
  110. package/lib/typescript/SentryManager.d.ts +1 -0
  111. package/lib/typescript/SentryManager.d.ts.map +1 -0
  112. package/lib/typescript/SyncPrefData.d.ts +1 -0
  113. package/lib/typescript/SyncPrefData.d.ts.map +1 -0
  114. package/lib/typescript/Tool.d.ts +3 -2
  115. package/lib/typescript/Tool.d.ts.map +1 -0
  116. package/lib/typescript/VersionManager.d.ts +2 -1
  117. package/lib/typescript/VersionManager.d.ts.map +1 -0
  118. package/lib/typescript/VipAndroidManager.d.ts +1 -0
  119. package/lib/typescript/VipAndroidManager.d.ts.map +1 -0
  120. package/lib/typescript/VipManager.d.ts +1 -0
  121. package/lib/typescript/VipManager.d.ts.map +1 -0
  122. package/lib/typescript/WeChatLoginUtil.d.ts +1 -0
  123. package/lib/typescript/WeChatLoginUtil.d.ts.map +1 -0
  124. package/lib/typescript/constant.d.ts +1 -0
  125. package/lib/typescript/constant.d.ts.map +1 -0
  126. package/lib/typescript/index.d.ts +2 -0
  127. package/lib/typescript/index.d.ts.map +1 -0
  128. package/package.json +63 -42
  129. package/src/PlatformHelper.ts +19 -0
  130. package/src/PrefData.ts +1 -1
  131. package/src/SyncPrefData.ts +6 -17
  132. package/src/Tool.ts +49 -15
  133. package/src/VipManager.ts +22 -4
  134. package/src/index.tsx +1 -0
  135. package/yarn.lock +5709 -7162
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Frequence.d.ts","sourceRoot":"","sources":["../../src/Frequence.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,cAAM,kBAAkB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;;CAKf;AAMD,eAAO,MAAM,gBAAgB;qBACV,aAAa;yBAwBT,aAAa;oBAalB,aAAa;8BAIH,aAAa;kCAOzB,aAAa,UACjB,kBAAkB,GAAG,IAAI;CAWpC,CAAC"}
@@ -13,7 +13,7 @@ export type LoginFailResulType = {
13
13
  };
14
14
  export declare const LoginManager: {
15
15
  autoLogin: () => Promise<void>;
16
- login: (type: LoginType, devAuthData: LoginAuthDataType | null | undefined, loadingCallback: Function, qrcodeCallback?: ((qrcode: string) => void) | undefined) => Promise<void>;
16
+ login: (type: LoginType, devAuthData: (LoginAuthDataType | null) | undefined, loadingCallback: Function, qrcodeCallback?: (qrcode: string) => void) => Promise<void>;
17
17
  logOut: (callback?: Function) => void;
18
18
  isLogin: () => boolean;
19
19
  isVisitor: () => boolean;
@@ -27,3 +27,4 @@ export declare const LoginManager: {
27
27
  getRegisterDays: () => number;
28
28
  };
29
29
  export {};
30
+ //# sourceMappingURL=LoginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginManager.d.ts","sourceRoot":"","sources":["../../src/LoginManager.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EAEjB,SAAS,EAET,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,KAAK,sBAAsB,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAC/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA+GF,eAAO,MAAM,YAAY;;kBAef,SAAS,gBACF,iBAAiB,GAAG,IAAI,gCACpB,QAAQ,mBACR,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;wBAiKvB,QAAQ;;;;4BAyBpB,MAAM,EAAE,UACN,GAAG,EAAE,aACF,QAAQ;sBA0BH,MAAM,SAAS,GAAG,aAAa,QAAQ;2BAI5B,QAAQ;;;kCA2BP,sBAAsB;;CAuBrD,CAAC"}
@@ -30,3 +30,4 @@ export declare const MessageModel: {
30
30
  addListener: (callback: Function) => Function;
31
31
  removeListener: (callback: Function) => void;
32
32
  };
33
+ //# sourceMappingURL=MessageModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageModel.d.ts","sourceRoot":"","sources":["../../src/MessageModel.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoGD,MAAM,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;AAEjE,eAAO,MAAM,YAAY;0BACD,aAAa;2BA0BZ,aAAa;6BAsCb,OAAO,EAAE;0BAIZ,OAAO,EAAE;6BAIE,OAAO;+BAkCL,OAAO;;gCA0BZ,QAAQ;4BAQZ,QAAQ;+BASL,QAAQ;CAGpC,CAAC"}
@@ -5,3 +5,4 @@ export declare const Notification: {
5
5
  removeAllListeners: (event: string) => void;
6
6
  postNotification: (event: string, args?: object) => void;
7
7
  };
8
+ //# sourceMappingURL=Notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Notification.d.ts","sourceRoot":"","sources":["../../src/Notification.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;yBACF,MAAM,YAAY,QAAQ,cAAc,OAAO;6BAS3C,MAAM,YAAY,QAAQ;+BAIxB,QAAQ;gCAOP,MAAM;8BAUR,MAAM,SAAS,MAAM;CAGhD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const PlatformHelper: {
2
+ isIOS: () => boolean;
3
+ isAndroid: () => boolean;
4
+ isHarmony: () => boolean;
5
+ };
6
+ //# sourceMappingURL=PlatformHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformHelper.d.ts","sourceRoot":"","sources":["../../src/PlatformHelper.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc;iBACd,OAAO;qBACH,OAAO;qBACP,OAAO;CACvB,CAAC"}
@@ -14,3 +14,4 @@ export declare const PrefData: {
14
14
  addListener: (callback: Function) => void;
15
15
  addListenerOnce: (callback: Function) => void;
16
16
  };
17
+ //# sourceMappingURL=PrefData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrefData.d.ts","sourceRoot":"","sources":["../../src/PrefData.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB;AAID,eAAO,MAAM,YAAY,EAAE,SAwD1B,CAAC;AAWF,eAAO,MAAM,QAAQ;sBACK,SAAS;qBA0ChB,QAAQ;qBAIF,QAAQ,SAAS,GAAG;4BAiBnB,QAAQ;gCAQJ,QAAQ;CAOrC,CAAC"}
@@ -9,3 +9,4 @@ export declare const ReportUtil: {
9
9
  viewAppear: (page: string) => void;
10
10
  viewDisappear: (page: string) => void;
11
11
  };
12
+ //# sourceMappingURL=ReportUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportUtil.d.ts","sourceRoot":"","sources":["../../src/ReportUtil.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAChC;AAoDD,eAAO,MAAM,UAAU;;sBAwBH,MAAM,WAAW,cAAc;yBAiB5B,MAAM,SAAS,MAAM;;uBAQvB,MAAM;0BAcH,MAAM;CAa7B,CAAC"}
@@ -2,3 +2,4 @@ export declare const SentryManager: {
2
2
  init: () => void;
3
3
  setTag: (key: string, value: any) => void;
4
4
  };
5
+ //# sourceMappingURL=SentryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SentryManager.d.ts","sourceRoot":"","sources":["../../src/SentryManager.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;kBAmCV,MAAM,SAAS,GAAG;CAOjC,CAAC"}
@@ -2,3 +2,4 @@ export declare const SyncPrefData: {
2
2
  setPrefString: (key: string, value: string) => void;
3
3
  getPrefString: (key: string) => string;
4
4
  };
5
+ //# sourceMappingURL=SyncPrefData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncPrefData.d.ts","sourceRoot":"","sources":["../../src/SyncPrefData.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;yBACF,MAAM,SAAS,MAAM;yBAIrB,MAAM,KAAG,MAAM;CAGrC,CAAC"}
@@ -67,8 +67,9 @@ export declare const Tool: {
67
67
  setVibrateEnable: (enable: boolean) => void;
68
68
  getVibrateEnable: () => boolean;
69
69
  vibrate: () => Promise<void>;
70
- isPad: () => boolean;
71
- isHorizontalPad: () => boolean;
70
+ isPad: () => any;
71
+ isHorizontalPad: () => any;
72
72
  isHuaweiDevice: () => boolean;
73
73
  };
74
74
  export {};
75
+ //# sourceMappingURL=Tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../src/Tool.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,eAAO,IAAI,aAAa,EAAE,iBAAiB,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAAI,QAAQ,iBAAiB,SAE1D,CAAC;AAuDF,eAAO,MAAM,IAAI;mBACA,MAAM;qBAGJ,IAAI,QAAQ,MAAM,GAAG,MAAM;sBAkC1B,GAAG;uBAWF,MAAM;uBAIN,MAAM;6BAIA,MAAM;;IAc/B;;;;;;;;;OASG;2BACoB,MAAM;;uBA2BV,MAAM;+BAME,WAAW;;;qBA6Df,MAAM;gDAMqB,MAAM,OAAO,CAAC,OAAO,CAAC;uBAmDjE,MAAM,cACC,MAAM,kBACF,MAAM,OAAO,CAAC,OAAO,CAAC;;;;;;;+BAoEb,OAAO;;;;;;CAqEnC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare const VersionManager: {
2
2
  init: ({ latestAppVersion, latestBundleVersion, }: {
3
3
  latestAppVersion: string;
4
- latestBundleVersion?: string | undefined;
4
+ latestBundleVersion?: string;
5
5
  }) => void;
6
6
  isDanger: () => any;
7
7
  appVer: () => string;
@@ -12,3 +12,4 @@ export declare const VersionManager: {
12
12
  hasNewBundleVer: () => boolean;
13
13
  isValidVersion: (minVer?: string, maxVer?: string) => boolean;
14
14
  };
15
+ //# sourceMappingURL=VersionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionManager.d.ts","sourceRoot":"","sources":["../../src/VersionManager.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,cAAc;uDAItB;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;;;8BA+ByB,MAAM;;;;;8BAoCN,MAAM,WAAW,MAAM;CAYlD,CAAC"}
@@ -26,3 +26,4 @@ export declare const VipAndroidManager: {
26
26
  errorMsg?: undefined;
27
27
  }>;
28
28
  };
29
+ //# sourceMappingURL=VipAndroidManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VipAndroidManager.d.ts","sourceRoot":"","sources":["../../src/VipAndroidManager.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAMrE,eAAO,MAAM,iBAAiB;8BACF;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KAAE;2BAIlC,MAAM;;;;;;;;;;;;;;+BA6CR,MAAM;gCAQC,gBAAgB;;;;;;;CAkDnD,CAAC"}
@@ -26,3 +26,4 @@ export declare const VipManager: {
26
26
  isVipExpired: () => any;
27
27
  refreshVip: (customerInfo?: CustomerInfo) => Promise<void>;
28
28
  };
29
+ //# sourceMappingURL=VipManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VipManager.d.ts","sourceRoot":"","sources":["../../src/VipManager.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,YAAY,EACZ,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAuBhC,eAAO,MAAM,UAAU;;gCAuCa,gBAAgB;;;;;;;;;;;;;;+BAyFjB,MAAM,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;;;;;;;;;gCAoJnC,YAAY;CAwB/C,CAAC"}
@@ -2,3 +2,4 @@ export declare const WeChatLoginUtil: {
2
2
  doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => void;
3
3
  doLoginByScan: (WeiXinId: string, WeiXinSecret: string, onQRGet: (qrcode: string) => void, callback: Function) => Promise<void>;
4
4
  };
5
+ //# sourceMappingURL=WeChatLoginUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeChatLoginUtil.d.ts","sourceRoot":"","sources":["../../src/WeChatLoginUtil.ts"],"names":[],"mappings":"AA+FA,eAAO,MAAM,eAAe;wBACN,MAAM,gBAAgB,MAAM,YAAY,QAAQ;8BAiBxD,MAAM,gBACF,MAAM,WACX,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,YACvB,QAAQ;CAgCrB,CAAC"}
@@ -31,3 +31,4 @@ export declare enum LoginType {
31
31
  LoginTypeVisitor = 2,
32
32
  LoginTypeWeChatScan = 3
33
33
  }
34
+ //# sourceMappingURL=constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,oBAAY,UAAU;IACpB,QAAQ,IAAA;IACR,UAAU,IAAA;CACX;AAED,oBAAY,SAAS;IACnB,cAAc,IAAA;IACd,eAAe,IAAA;IACf,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;CACpB"}
@@ -13,6 +13,7 @@ export * from './Frequence';
13
13
  export * from './LoginManager';
14
14
  export * from './MessageModel';
15
15
  export * from './Notification';
16
+ export * from './PlatformHelper';
16
17
  export * from './PrefData';
17
18
  export * from './ReportUtil';
18
19
  export * from './SentryManager';
@@ -22,3 +23,4 @@ export * from './VersionManager';
22
23
  export * from './VipAndroidManager';
23
24
  export * from './VipManager';
24
25
  export * from './WeChatLoginUtil';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;wBAImC,sBAAsB;AAA3D,wBAA4D;AAC5D,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
+ "private": false,
4
5
  "description": "My Toolkit",
5
6
  "main": "lib/commonjs/index",
6
7
  "module": "lib/module/index",
@@ -24,6 +25,8 @@
24
25
  "typescript": "tsc --noEmit",
25
26
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
26
27
  "prepare": "bob build",
28
+ "postinstall": "husky || true",
29
+ "build": "bob build",
27
30
  "release": "release-it",
28
31
  "example": "yarn --cwd example",
29
32
  "pods": "cd example && pod-install --quiet",
@@ -42,50 +45,57 @@
42
45
  },
43
46
  "homepage": "https://github.com/Norcy/react-native-toolkit#readme",
44
47
  "devDependencies": {
45
- "@commitlint/config-conventional": "^8.3.4",
48
+ "@babel/core": "^7.20.0",
49
+ "@babel/preset-env": "^7.20.0",
50
+ "@commitlint/cli": "^19.5.0",
51
+ "@commitlint/config-conventional": "^19.5.0",
46
52
  "@invertase/react-native-apple-authentication": "^2.1.2",
47
- "@react-native-community/async-storage": "^1.12.0",
48
- "@react-native-community/bob": "^0.16.2",
49
- "@react-native-community/cameraroll": "^4.0.4",
50
- "@react-native-community/eslint-config": "^3.0.0",
51
- "@react-navigation/bottom-tabs": "5",
52
- "@react-navigation/native": "5",
53
- "@react-navigation/stack": "5",
54
- "@release-it/conventional-changelog": "^1.1.4",
55
- "@sentry/cli": "^2.12.0",
56
- "@sentry/react-native": "^3.4.3",
57
- "@types/jest": "^26.0.0",
58
- "@types/react": "^16.9.19",
59
- "@types/react-native": "0.62.13",
60
- "commitlint": "^8.3.5",
61
- "eslint": "^7.2.0",
62
- "eslint-config-prettier": "^6.11.0",
63
- "eslint-plugin-prettier": "^3.1.3",
64
- "husky": "^4.2.5",
53
+ "@react-native-async-storage/async-storage": "^1.19.0",
54
+ "@react-native-camera-roll/camera-roll": "^5.0.0",
55
+ "@react-native-community/eslint-config": "^3.2.0",
56
+ "@react-native-masked-view/masked-view": "^0.3.0",
57
+ "@react-navigation/bottom-tabs": "^6.5.0",
58
+ "@react-navigation/native": "^6.1.0",
59
+ "@react-navigation/stack": "^6.3.0",
60
+ "@release-it/conventional-changelog": "^8.0.2",
61
+ "@sentry/cli": "^2.38.2",
62
+ "@sentry/react-native": "^5.33.1",
63
+ "@types/jest": "^29.5.13",
64
+ "@types/react": "^18.2.0",
65
+ "@types/react-native": "0.72.5",
66
+ "eslint": "^8.57.1",
67
+ "eslint-config-prettier": "^9.1.0",
68
+ "eslint-plugin-prettier": "^5.2.1",
69
+ "husky": "^9.1.6",
65
70
  "i18n-js": "^4.2.2",
66
- "jest": "^26.0.1",
71
+ "jest": "^29.7.0",
67
72
  "js-sha1": "^0.7.0",
68
- "leancloud-storage": "^4.10.1",
73
+ "leancloud-storage": "^4.15.2",
69
74
  "pod-install": "^0.1.0",
70
- "prettier": "^2.0.5",
75
+ "prettier": "^3.3.3",
71
76
  "query-string": "^8.0.0",
72
- "react": "16.11.0",
73
- "react-native": "0.62.2",
77
+ "react": "18.2.0",
78
+ "react-native": "0.72.5",
74
79
  "react-native-blob-util": "^0.19.11",
80
+ "react-native-builder-bob": "^0.30.2",
75
81
  "react-native-device-info": "^10.0.2",
82
+ "react-native-gesture-handler": "^2.0.0",
83
+ "react-native-mmkv": "^2.12.2",
76
84
  "react-native-purchases": "^7.28.1",
85
+ "react-native-safe-area-context": "^4.0.0",
86
+ "react-native-screens": "^3.0.0",
77
87
  "react-native-simple-toast": "^1.1.3",
78
88
  "react-native-wechat-lib": "^1.1.26",
79
- "release-it": "^13.5.8",
80
- "typescript": "^5.0.2"
89
+ "release-it": "^17.7.0",
90
+ "typescript": "^5.6.3"
81
91
  },
82
92
  "peerDependencies": {
83
93
  "@invertase/react-native-apple-authentication": "*",
84
- "@react-native-community/async-storage": "*",
85
- "@react-native-community/cameraroll": "*",
86
- "@react-navigation/bottom-tabs": "*",
87
- "@react-navigation/native": "*",
88
- "@react-navigation/stack": "*",
94
+ "@react-native-async-storage/async-storage": "*",
95
+ "@react-native-camera-roll/camera-roll": "*",
96
+ "@react-navigation/bottom-tabs": "^6.0.0",
97
+ "@react-navigation/native": "^6.0.0",
98
+ "@react-navigation/stack": "^6.0.0",
89
99
  "@sentry/react-native": "*",
90
100
  "i18n-js": "*",
91
101
  "js-sha1": "*",
@@ -95,6 +105,7 @@
95
105
  "react-native": "*",
96
106
  "react-native-blob-util": "*",
97
107
  "react-native-device-info": "*",
108
+ "react-native-mmkv": "*",
98
109
  "react-native-purchases": "*",
99
110
  "react-native-simple-toast": "*",
100
111
  "react-native-wechat-lib": "*"
@@ -106,11 +117,6 @@
106
117
  "<rootDir>/lib/"
107
118
  ]
108
119
  },
109
- "husky": {
110
- "hooks": {
111
- "pre-commit": "yarn lint --fix && yarn typescript"
112
- }
113
- },
114
120
  "commitlint": {
115
121
  "extends": [
116
122
  "@commitlint/config-conventional"
@@ -162,7 +168,7 @@
162
168
  "trailingComma": "es5",
163
169
  "useTabs": false
164
170
  },
165
- "@react-native-community/bob": {
171
+ "react-native-builder-bob": {
166
172
  "source": "src",
167
173
  "output": "lib",
168
174
  "targets": [
@@ -172,11 +178,26 @@
172
178
  ]
173
179
  },
174
180
  "resolutions": {
175
- "@react-native-community/cli": "~4.13.1",
176
- "@react-native-community/cli-tools": "4.13.0",
177
- "@types/react": "16.9.56"
181
+ "@react-native-community/cli": "~11.3.10",
182
+ "@react-native-community/cli-tools": "11.3.10",
183
+ "@react-native-community/cli-platform-android": "~11.3.10",
184
+ "@react-native-community/cli-platform-ios": "~11.3.10",
185
+ "@react-native-community/cli-plugin-metro": "~11.3.10",
186
+ "@react-native-community/cli-config": "~11.3.10",
187
+ "@react-native-community/cli-doctor": "~11.3.10",
188
+ "@react-native-community/cli-hermes": "~11.3.10",
189
+ "@react-native-community/cli-server-api": "~11.3.10",
190
+ "@react-native-community/cli-clean": "~11.3.10",
191
+ "@types/react": "18.2.0",
192
+ "del": "^5.1.0",
193
+ "glob": "^8.1.0",
194
+ "rimraf": "^3.0.2",
195
+ "uuid": "^9.0.0",
196
+ "superagent": "^8.1.2",
197
+ "minimatch": "^9.0.5"
178
198
  },
179
199
  "publishConfig": {
180
200
  "access": "public"
181
- }
201
+ },
202
+ "dependencies": {}
182
203
  }
@@ -0,0 +1,19 @@
1
+ import { Platform } from 'react-native';
2
+
3
+ // 扩展 Platform.OS 类型以支持鸿蒙
4
+ type PlatformOSType =
5
+ | 'ios'
6
+ | 'android'
7
+ | 'windows'
8
+ | 'macos'
9
+ | 'web'
10
+ | 'harmony';
11
+
12
+ const platformOS = Platform.OS as PlatformOSType;
13
+
14
+ // 平台判断工具方法
15
+ export const PlatformHelper = {
16
+ isIOS: (): boolean => platformOS === 'ios',
17
+ isAndroid: (): boolean => platformOS === 'android',
18
+ isHarmony: (): boolean => platformOS === 'harmony',
19
+ };
package/src/PrefData.ts CHANGED
@@ -1,4 +1,4 @@
1
- import AsyncStorage from '@react-native-community/async-storage';
1
+ import AsyncStorage from '@react-native-async-storage/async-storage';
2
2
 
3
3
  const EventEmitter = require('events').EventEmitter;
4
4
  const eventEmitter = new EventEmitter();
@@ -1,25 +1,14 @@
1
- import { NativeModules, Platform, Settings } from 'react-native';
1
+ import { MMKV } from 'react-native-mmkv';
2
+
3
+ // 创建 MMKV 实例用于同步存储
4
+ const storage = new MMKV();
2
5
 
3
6
  export const SyncPrefData = {
4
7
  setPrefString: (key: string, value: string) => {
5
- if (Platform.OS === 'ios') {
6
- Settings.set({ [key]: value });
7
- } else {
8
- if (!NativeModules.NCYAPI) {
9
- return;
10
- }
11
- NativeModules.NCYAPI.setData(key, value);
12
- }
8
+ storage.set(key, value);
13
9
  },
14
10
 
15
11
  getPrefString: (key: string): string => {
16
- if (Platform.OS === 'ios') {
17
- return Settings.get(key);
18
- } else {
19
- if (!NativeModules.NCYAPI) {
20
- return '';
21
- }
22
- return NativeModules.NCYAPI.getData(key);
23
- }
12
+ return storage.getString(key) ?? '';
24
13
  },
25
14
  };
package/src/Tool.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AppLink } from '@norcy/react-native-toolkit';
2
- import CameraRoll from '@react-native-community/cameraroll';
2
+ import { CameraRoll } from '@react-native-camera-roll/camera-roll';
3
3
  import { useState } from 'react';
4
4
  import {
5
5
  Alert,
@@ -18,6 +18,7 @@ import {
18
18
  isTablet,
19
19
  } from 'react-native-device-info';
20
20
  import Toast from 'react-native-simple-toast';
21
+ import { PlatformHelper } from './PlatformHelper';
21
22
  import { BuildInPrefs, PrefData } from './PrefData';
22
23
  import { ReportUtil } from './ReportUtil';
23
24
 
@@ -243,13 +244,16 @@ export const Tool = {
243
244
 
244
245
  goAppStoreReview: () => {
245
246
  ReportUtil.report('StoreReview');
246
- if (Platform.OS === 'ios') {
247
+ if (PlatformHelper.isIOS()) {
247
248
  Linking.canOpenURL('itms-apps://').then((supported) => {
248
249
  if (supported) {
249
250
  Linking.openURL(ToolkitConfig.iOSReviewUrl);
250
251
  }
251
252
  });
252
- } else {
253
+ } else if (PlatformHelper.isHarmony()) {
254
+ console.error('TODO: 鸿蒙平台的应用市场评价功能待实现');
255
+ // TODO: 实现鸿蒙应用市场跳转逻辑(华为应用市场)
256
+ } else if (PlatformHelper.isAndroid()) {
253
257
  if (NativeModules.CheckPackageInstallation) {
254
258
  NativeModules.CheckPackageInstallation.isPackageInstalled(
255
259
  'com.coolapk.market',
@@ -275,13 +279,16 @@ export const Tool = {
275
279
  },
276
280
 
277
281
  goUpgrade: () => {
278
- if (Platform.OS === 'ios') {
282
+ if (PlatformHelper.isIOS()) {
279
283
  Linking.canOpenURL('itms-apps://').then((supported) => {
280
284
  if (supported) {
281
285
  Linking.openURL(ToolkitConfig.iOSStoreScheme);
282
286
  }
283
287
  });
284
- } else {
288
+ } else if (PlatformHelper.isHarmony()) {
289
+ console.error('TODO: 鸿蒙平台的应用升级功能待实现');
290
+ // TODO: 实现鸿蒙升级逻辑(华为应用市场或 H5 下载页)
291
+ } else if (PlatformHelper.isAndroid()) {
285
292
  // 使用短链别名,不然 Android 的 AppLink 会直接吃掉官网,导致 App 内无法使用浏览器打开官网
286
293
  Linking.openURL(ToolkitConfig.AppWebsiteAlias);
287
294
  }
@@ -294,7 +301,17 @@ export const Tool = {
294
301
  },
295
302
 
296
303
  hasAndroidWritePermission: async (beforeRequest?: () => Promise<boolean>) => {
297
- if (Platform.OS !== 'android') {
304
+ if (PlatformHelper.isIOS()) {
305
+ return true;
306
+ }
307
+
308
+ if (PlatformHelper.isHarmony()) {
309
+ console.error('TODO: 鸿蒙平台的存储权限检查待实现');
310
+ // TODO: 实现鸿蒙存储权限逻辑
311
+ return true; // 暂时返回 true,避免阻塞功能
312
+ }
313
+
314
+ if (!PlatformHelper.isAndroid()) {
298
315
  return true;
299
316
  }
300
317
 
@@ -306,7 +323,7 @@ export const Tool = {
306
323
  }
307
324
 
308
325
  // 对 MANAGE_EXTERNAL_STORAGE 再检查一次
309
- if (NativeModules.NCYAPI.checkManagePermission) {
326
+ if (NativeModules.NCYAPI?.checkManagePermission) {
310
327
  if (await NativeModules.NCYAPI.checkManagePermission()) {
311
328
  return true;
312
329
  }
@@ -324,7 +341,7 @@ export const Tool = {
324
341
  return true;
325
342
  }
326
343
 
327
- if (NativeModules.NCYAPI.requestManagePermission) {
344
+ if (NativeModules.NCYAPI?.requestManagePermission) {
328
345
  if (await NativeModules.NCYAPI.requestManagePermission()) {
329
346
  return true;
330
347
  }
@@ -346,14 +363,20 @@ export const Tool = {
346
363
 
347
364
  // 检查权限
348
365
  if (
349
- Platform.OS === 'android' &&
366
+ PlatformHelper.isAndroid() &&
350
367
  !(await Tool.hasAndroidWritePermission(beforeRequest))
351
368
  ) {
352
369
  return { errorCode: -1 };
353
370
  }
354
371
 
372
+ if (PlatformHelper.isHarmony()) {
373
+ console.error('TODO: 鸿蒙平台的图片保存功能待实现');
374
+ // TODO: 实现鸿蒙图片保存逻辑
375
+ return { errorCode: -99, errMsg: 'HarmonyOS not implemented' };
376
+ }
377
+
355
378
  // iOS 或本地图片直接保存
356
- if (Platform.OS === 'ios' || !Tool.isRemoteURL(url)) {
379
+ if (PlatformHelper.isIOS() || !Tool.isRemoteURL(url)) {
357
380
  try {
358
381
  await CameraRoll.save(url, {
359
382
  type: 'photo',
@@ -415,9 +438,12 @@ export const Tool = {
415
438
  if (!VibrateEnable) {
416
439
  return;
417
440
  }
418
- if (Platform.OS === 'ios') {
441
+ if (PlatformHelper.isIOS()) {
419
442
  NativeModules.NCYVibration?.vibrate();
420
- } else {
443
+ } else if (PlatformHelper.isHarmony()) {
444
+ console.error('TODO: 鸿蒙平台的震动功能待实现');
445
+ // TODO: 实现鸿蒙震动逻辑
446
+ } else if (PlatformHelper.isAndroid()) {
421
447
  if (androidVibratePermissionStatus === -1) {
422
448
  androidVibratePermissionStatus = (await PermissionsAndroid.check(
423
449
  // @ts-ignore
@@ -434,8 +460,12 @@ export const Tool = {
434
460
  },
435
461
 
436
462
  isPad: () => {
437
- if (Platform.OS === 'ios') {
438
- return Platform.isPad;
463
+ if (PlatformHelper.isIOS()) {
464
+ return (Platform as any).isPad ?? false;
465
+ } else if (PlatformHelper.isHarmony()) {
466
+ console.error('TODO: 鸿蒙平台的平板检测功能待实现');
467
+ // TODO: 实现鸿蒙平板检测逻辑
468
+ return false; // 暂时返回 false
439
469
  } else {
440
470
  return isTablet();
441
471
  }
@@ -446,7 +476,11 @@ export const Tool = {
446
476
  },
447
477
 
448
478
  isHuaweiDevice: () => {
449
- if (Platform.OS !== 'android') return false;
479
+ // 鸿蒙设备肯定是华为设备
480
+ if (PlatformHelper.isHarmony()) return true;
481
+
482
+ if (!PlatformHelper.isAndroid()) return false;
483
+
450
484
  try {
451
485
  if (hasHmsSync()) return true;
452
486
  } catch {}
package/src/VipManager.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { Platform } from 'react-native';
2
1
  import Purchases, {
3
2
  CustomerInfo,
4
3
  PurchasesPackage,
@@ -6,6 +5,7 @@ import Purchases, {
6
5
  import { DevConfig } from './DevConfig';
7
6
  import { LoginManager, LoginSuccessResultType } from './LoginManager';
8
7
  import { Notification } from './Notification';
8
+ import { PlatformHelper } from './PlatformHelper';
9
9
  import { BuildInPrefs } from './PrefData';
10
10
  import { Tool, ToolkitConfig } from './Tool';
11
11
  import { VipAndroidManager } from './VipAndroidManager';
@@ -79,7 +79,13 @@ export const VipManager = {
79
79
 
80
80
  console.log('购买商品', purchasePackage);
81
81
 
82
- if (Platform.OS === 'android') {
82
+ if (PlatformHelper.isHarmony()) {
83
+ console.error('TODO: 鸿蒙平台的购买功能待实现');
84
+ // TODO: 实现鸿蒙支付逻辑(华为支付或其他)
85
+ return { errorCode: -99, errorMsg: 'HarmonyOS not implemented' };
86
+ }
87
+
88
+ if (PlatformHelper.isAndroid()) {
83
89
  return await VipAndroidManager.purchase(purchasePackage);
84
90
  }
85
91
 
@@ -120,7 +126,13 @@ export const VipManager = {
120
126
  }
121
127
 
122
128
  try {
123
- if (Platform.OS === 'android') {
129
+ if (PlatformHelper.isHarmony()) {
130
+ console.error('TODO: 鸿蒙平台的恢复购买功能待实现');
131
+ // TODO: 实现鸿蒙恢复购买逻辑
132
+ return { errorCode: -99, errorMsg: 'HarmonyOS not implemented' };
133
+ }
134
+
135
+ if (PlatformHelper.isAndroid()) {
124
136
  return await VipAndroidManager.recover();
125
137
  }
126
138
 
@@ -150,7 +162,13 @@ export const VipManager = {
150
162
  return [];
151
163
  }
152
164
 
153
- if (Platform.OS === 'android' || __DEV__) {
165
+ if (PlatformHelper.isHarmony()) {
166
+ console.error('TODO: 鸿蒙平台的获取商品列表功能待实现');
167
+ // TODO: 实现鸿蒙获取商品列表逻辑
168
+ return [];
169
+ }
170
+
171
+ if (PlatformHelper.isAndroid() || __DEV__) {
154
172
  return VipAndroidManager.getPackages(offeringId);
155
173
  }
156
174
 
package/src/index.tsx CHANGED
@@ -17,6 +17,7 @@ export * from './Frequence';
17
17
  export * from './LoginManager';
18
18
  export * from './MessageModel';
19
19
  export * from './Notification';
20
+ export * from './PlatformHelper';
20
21
  export * from './PrefData';
21
22
  export * from './ReportUtil';
22
23
  export * from './SentryManager';