@react-native-ohos/react-native-webview 13.10.6-beta.3 → 13.10.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 (62) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -21
  3. package/README.md +385 -393
  4. package/harmony/rn_webview/.gitignore +6 -0
  5. package/harmony/rn_webview/BuildProfile.ets +1 -1
  6. package/harmony/rn_webview/LICENSE +21 -21
  7. package/harmony/rn_webview/NOTICE +33 -33
  8. package/harmony/rn_webview/OAT.xml +44 -44
  9. package/harmony/rn_webview/README.OpenSource +10 -10
  10. package/harmony/rn_webview/build-profile.json5 +28 -28
  11. package/harmony/rn_webview/index.ets +33 -33
  12. package/harmony/rn_webview/obfuscation-rules.txt +17 -17
  13. package/harmony/rn_webview/oh-package-lock.json5 +18 -18
  14. package/harmony/rn_webview/oh-package.json5 +13 -13
  15. package/harmony/rn_webview/src/main/cpp/CMakeLists.txt +9 -9
  16. package/harmony/rn_webview/src/main/cpp/WebViewPackage.h +36 -36
  17. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/BaseReactNativeWebviewPackage.h +94 -94
  18. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/components/RNCWebViewJSIBinder.h +129 -128
  19. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.cpp +20 -20
  20. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.h +16 -16
  21. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.cpp +19 -19
  22. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.h +16 -16
  23. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ComponentDescriptors.h +22 -22
  24. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.cpp +240 -240
  25. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.h +285 -285
  26. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.cpp +156 -155
  27. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.h +340 -339
  28. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.cpp +19 -19
  29. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.h +34 -34
  30. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.cpp +16 -16
  31. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.h +19 -19
  32. package/harmony/rn_webview/src/main/ets/CutomReference.ts +49 -49
  33. package/harmony/rn_webview/src/main/ets/Logger.ts +63 -63
  34. package/harmony/rn_webview/src/main/ets/Magic.ets +223 -221
  35. package/harmony/rn_webview/src/main/ets/RNCWebView.ets +1098 -903
  36. package/harmony/rn_webview/src/main/ets/RNCWebViewPackage.ets +65 -65
  37. package/harmony/rn_webview/src/main/ets/ShouldRequestUrl.ts +67 -67
  38. package/harmony/rn_webview/src/main/ets/WebViewBaseOperate.ets +490 -490
  39. package/harmony/rn_webview/src/main/ets/WebViewTurboModule.ets +81 -81
  40. package/harmony/rn_webview/src/main/ets/generated/components/RNCWebView.ts +516 -511
  41. package/harmony/rn_webview/src/main/ets/generated/components/ts.ts +5 -5
  42. package/harmony/rn_webview/src/main/ets/generated/index.ets +5 -5
  43. package/harmony/rn_webview/src/main/ets/generated/ts.ts +6 -6
  44. package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebView.ts +18 -18
  45. package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebViewModule.ts +16 -16
  46. package/harmony/rn_webview/src/main/ets/generated/turboModules/ts.ts +6 -6
  47. package/harmony/rn_webview/src/main/module.json5 +10 -10
  48. package/harmony/rn_webview/src/main/resources/base/element/string.json +39 -39
  49. package/harmony/rn_webview/src/main/resources/en_US/element/string.json +39 -39
  50. package/harmony/rn_webview/src/main/resources/zh_CN/element/string.json +39 -39
  51. package/harmony/rn_webview/src/test/List.test.ets +4 -4
  52. package/harmony/rn_webview/src/test/LocalUnit.test.ets +32 -32
  53. package/harmony/rn_webview/ts.ets +28 -28
  54. package/harmony/rn_webview.har +0 -0
  55. package/package.json +105 -104
  56. package/src/NativeRNCWebView.ts +15 -15
  57. package/src/NativeRNCWebViewModule.ts +17 -17
  58. package/src/RNCWebViewNativeComponent.ts +289 -288
  59. package/src/WebView.harmony.tsx +331 -331
  60. package/src/WebView.tsx +4 -4
  61. package/src/codegenUtils.ts +8 -8
  62. package/src/index.ts +4 -4
@@ -1,221 +1,223 @@
1
- /**
2
- * MIT License
3
- *
4
- * Copyright (C) 2025 Huawei Device Co., Ltd.
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining a copy
7
- * of this software and associated documentation files (the "Software"), to deal
8
- * in the Software without restriction, including without limitation the rights
9
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- * copies of the Software, and to permit persons to whom the Software is
11
- * furnished to do so, subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be included in all
14
- * copies or substantial portions of the Software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- * SOFTWARE.
23
- */
24
-
25
- import { Descriptor, ViewBaseProps, ViewDescriptorWrapperBase, ViewRawProps } from '@rnoh/react-native-openharmony'
26
-
27
- export class WebViewNewSourceHeader {
28
- name?: string
29
- value?: string
30
- }
31
-
32
-
33
- export class WebViewNewSource {
34
- uri?: string | Resource
35
- method?: string
36
- body?: string
37
- headers?: WebViewNewSourceHeader[]
38
- html?: string
39
- baseUrl?: string
40
- }
41
-
42
- export interface AlertEvent {
43
- url: string;
44
- message: string;
45
- result: JsResult;
46
- }
47
-
48
- export const TAG = "WebView"
49
-
50
- export const WEB_VIEW = "RNCWebView"
51
-
52
- export const JAVASCRIPT_INTERFACE = "ReactNativeWebView";
53
-
54
- export interface WebViewProps extends ViewRawProps {
55
- width: number
56
- height: number
57
- newSource: WebViewNewSource
58
- javaScriptEnabled: boolean
59
- injectedJavaScript: string
60
- messagingEnabled: boolean
61
- showsHorizontalScrollIndicator: boolean
62
- showsVerticalScrollIndicator: boolean
63
- textZoom: number
64
- cacheEnabled: boolean
65
- cacheMode: CACHE_MODE
66
- domStorageEnabled: boolean
67
- scalesPageToFit: boolean
68
- messagingModuleName: string
69
- webviewDebuggingEnabled: boolean
70
- scrollEnabled: boolean
71
- incognito: boolean
72
- userAgent: string
73
- shouldStartLoadWithRequestEnabled: boolean
74
- hasOnShouldStartLoadWithRequestEvent?: boolean
75
- originWhitelist: Array<string>
76
- thirdPartyCookiesEnabled: boolean
77
- fraudulentWebsiteWarningEnabled: boolean
78
- ignoreSilentHardwareSwitch: boolean
79
- forceDarkOn: boolean
80
- minimumFontSize: number
81
- bounces: boolean
82
- injectedJavaScriptBeforeContentLoaded: string
83
- overScrollMode: WebViewOverScrollMode,
84
- mediaPlaybackRequiresUserAction: boolean
85
- geolocationEnabled: boolean
86
- applicationNameForUserAgent: string
87
- pullToRefreshEnabled: boolean
88
- schemeList: Array<string>
89
- mediaCapturePermissionGrantType?: 'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny'
90
- menuItems?: Array<MenuItem> | undefined;
91
- }
92
-
93
- export interface MenuItem {
94
- label: string,
95
- key: string
96
- }
97
-
98
- export enum WebMediaCapturePermissionGrantType {
99
- GRANT_IF_SAME_HOST_ELSE_PROMPT = "grantIfSameHostElsePrompt",
100
- GRANT_IF_SAME_HOST_ELSE_DENY = "grantIfSameHostElseDeny",
101
- DENY = "deny",
102
- GRANT = "grant",
103
- PROMPT = "prompt",
104
- }
105
-
106
-
107
- export class RNCWebViewBridge {
108
- postMessage!: (data: string) => void;
109
- }
110
-
111
- export class WebViewEventParams {
112
- type: string
113
- url?: string
114
- loading?: boolean
115
- title?: string
116
- canGoBack?: boolean
117
- canGoForward?: boolean
118
- lockIdentifier?: number
119
- data?: string
120
-
121
- constructor(type: string) {
122
- this.type = type
123
- }
124
- }
125
-
126
- export enum CACHE_MODE {
127
- 'LOAD_DEFAULT' = 'LOAD_DEFAULT',
128
- 'LOAD_CACHE_ELSE_NETWORK' = 'LOAD_CACHE_ELSE_NETWORK',
129
- 'LOAD_NO_CACHE' = 'LOAD_NO_CACHE',
130
- 'LOAD_CACHE_ONLY' = 'LOAD_CACHE_ONLY',
131
- }
132
-
133
- export class ResultType {
134
- url: string
135
- loading: boolean
136
- title: string
137
- canGoBack: boolean
138
- canGoForward: boolean
139
- lockIdentifier: number
140
- data: string
141
-
142
- constructor(url: string, loading: boolean, title: string, canGoBack: boolean, canGoForward: boolean,
143
- lockIdentifier: number, data: string) {
144
- this.url = url
145
- this.loading = loading
146
- this.title = title
147
- this.canGoBack = canGoBack
148
- this.canGoForward = canGoForward
149
- this.lockIdentifier = lockIdentifier
150
- this.data = data
151
- }
152
- }
153
-
154
- interface WebViewState {}
155
-
156
- export type WebViewDescriptor = Descriptor<"WebView", ViewBaseProps, WebViewState, WebViewProps>
157
-
158
- export class WebViewViewDescriptorWrapper extends ViewDescriptorWrapperBase<"WebView", ViewBaseProps, WebViewState, WebViewProps> {
159
- }
160
-
161
-
162
- export const ZERO: number = 0
163
-
164
- export const EIGHT: number = 8;
165
-
166
- export const ONE_HUNDRED: number = 100
167
-
168
- export const REFRESH_OFFSET: number = 120
169
-
170
- export const MINHEIGHT: number = 1
171
-
172
- export interface ProgressInterface {
173
- progress: number;
174
- }
175
-
176
- export interface LoadingErrorInterface {
177
- code: number,
178
- description: string
179
- }
180
-
181
- export interface ScrollInterface {
182
- x: number,
183
- y: number
184
- }
185
-
186
- export enum WebViewOverScrollMode {
187
- ALWAYS = "always",
188
- NEVER = "never"
189
- }
190
-
191
- export enum COMMAND_NAME {
192
- INJECTJAVASCRIPT = 'injectJavaScript',
193
- POSTMESSAGE = 'postMessage',
194
- RELOAD = 'reload',
195
- GOBACK = 'goBack',
196
- GOFORWARD = 'goForward',
197
- REQUESTFOCUS = 'requestFocus',
198
- CLEARCACHE = 'clearCache',
199
- CLEARHISTORY = 'clearHistory',
200
- STOPLOADING = 'stopLoading',
201
- LOADURL = 'loadUrl'
202
- }
203
-
204
- interface RenderExitReasonMessageItem {
205
- errorDomain: string
206
- errorDesc: string
207
- }
208
-
209
- export const RenderExitReasonMessage = new Map<number, RenderExitReasonMessageItem>()
210
-
211
- RenderExitReasonMessage.set(0,
212
- { errorDomain: 'ProcessAbnormalTermination', errorDesc: "The rendering process exits abnormally." })
213
- RenderExitReasonMessage.set(1,
214
- { errorDomain: 'ProcessWasKilled', errorDesc: "SIGKILL is received or manually terminated." })
215
- RenderExitReasonMessage.set(2,
216
- { errorDomain: 'ProcessCrashed', errorDesc: "The rendering process crashes and exits, such as a segment error." })
217
- RenderExitReasonMessage.set(3,
218
- { errorDomain: 'ProcessOom', errorDesc: "The program is out of memory." })
219
- RenderExitReasonMessage.set(4,
220
- { errorDomain: 'ProcessExitUnknown', errorDesc: "Other reasons." })
221
-
1
+ /**
2
+ * MIT License
3
+ *
4
+ * Copyright (C) 2025 Huawei Device Co., Ltd.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import { Descriptor, ViewBaseProps, ViewDescriptorWrapperBase, ViewRawProps } from '@rnoh/react-native-openharmony'
26
+
27
+ export class WebViewNewSourceHeader {
28
+ name?: string
29
+ value?: string
30
+ }
31
+
32
+
33
+ export class WebViewNewSource {
34
+ uri?: string | Resource
35
+ method?: string
36
+ body?: string
37
+ headers?: WebViewNewSourceHeader[]
38
+ html?: string
39
+ baseUrl?: string
40
+ }
41
+
42
+ export interface AlertEvent {
43
+ url: string;
44
+ message: string;
45
+ result: JsResult;
46
+ }
47
+
48
+ export const TAG = "WebView"
49
+
50
+ export const WEB_VIEW = "RNCWebView"
51
+
52
+ export const JAVASCRIPT_INTERFACE = "ReactNativeWebView";
53
+
54
+ export interface WebViewProps extends ViewRawProps {
55
+ width: number
56
+ height: number
57
+ newSource: WebViewNewSource
58
+ javaScriptEnabled: boolean
59
+ injectedJavaScript: string
60
+ messagingEnabled: boolean
61
+ showsHorizontalScrollIndicator: boolean
62
+ showsVerticalScrollIndicator: boolean
63
+ textZoom: number
64
+ cacheEnabled: boolean
65
+ cacheMode: CACHE_MODE
66
+ domStorageEnabled: boolean
67
+ scalesPageToFit: boolean
68
+ messagingModuleName: string
69
+ webviewDebuggingEnabled: boolean
70
+ scrollEnabled: boolean
71
+ incognito: boolean
72
+ userAgent: string
73
+ shouldStartLoadWithRequestEnabled: boolean
74
+ hasOnShouldStartLoadWithRequestEvent?: boolean
75
+ originWhitelist: Array<string>
76
+ thirdPartyCookiesEnabled: boolean
77
+ fraudulentWebsiteWarningEnabled: boolean
78
+ ignoreSilentHardwareSwitch: boolean
79
+ forceDarkOn: boolean
80
+ minimumFontSize: number
81
+ bounces: boolean
82
+ injectedJavaScriptBeforeContentLoaded: string
83
+ overScrollMode: WebViewOverScrollMode,
84
+ mediaPlaybackRequiresUserAction: boolean
85
+ geolocationEnabled: boolean
86
+ applicationNameForUserAgent: string
87
+ pullToRefreshEnabled: boolean
88
+ schemeList: Array<string>
89
+ renderMode: "SYNC_RENDER" | "ASYNC_RENDER",
90
+ mediaCapturePermissionGrantType?: 'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny'
91
+ menuItems?: Array<MenuItem> | undefined;
92
+ allowsFullscreenVideo?: boolean;
93
+ }
94
+
95
+ export interface MenuItem {
96
+ label: string,
97
+ key: string
98
+ }
99
+
100
+ export enum WebMediaCapturePermissionGrantType {
101
+ GRANT_IF_SAME_HOST_ELSE_PROMPT = "grantIfSameHostElsePrompt",
102
+ GRANT_IF_SAME_HOST_ELSE_DENY = "grantIfSameHostElseDeny",
103
+ DENY = "deny",
104
+ GRANT = "grant",
105
+ PROMPT = "prompt",
106
+ }
107
+
108
+
109
+ export class RNCWebViewBridge {
110
+ postMessage!: (data: string) => void;
111
+ }
112
+
113
+ export class WebViewEventParams {
114
+ type: string
115
+ url?: string
116
+ loading?: boolean
117
+ title?: string
118
+ canGoBack?: boolean
119
+ canGoForward?: boolean
120
+ lockIdentifier?: number
121
+ data?: string
122
+
123
+ constructor(type: string) {
124
+ this.type = type
125
+ }
126
+ }
127
+
128
+ export enum CACHE_MODE {
129
+ 'LOAD_DEFAULT' = 'LOAD_DEFAULT',
130
+ 'LOAD_CACHE_ELSE_NETWORK' = 'LOAD_CACHE_ELSE_NETWORK',
131
+ 'LOAD_NO_CACHE' = 'LOAD_NO_CACHE',
132
+ 'LOAD_CACHE_ONLY' = 'LOAD_CACHE_ONLY',
133
+ }
134
+
135
+ export class ResultType {
136
+ url: string
137
+ loading: boolean
138
+ title: string
139
+ canGoBack: boolean
140
+ canGoForward: boolean
141
+ lockIdentifier: number
142
+ data: string
143
+
144
+ constructor(url: string, loading: boolean, title: string, canGoBack: boolean, canGoForward: boolean,
145
+ lockIdentifier: number, data: string) {
146
+ this.url = url
147
+ this.loading = loading
148
+ this.title = title
149
+ this.canGoBack = canGoBack
150
+ this.canGoForward = canGoForward
151
+ this.lockIdentifier = lockIdentifier
152
+ this.data = data
153
+ }
154
+ }
155
+
156
+ interface WebViewState {}
157
+
158
+ export type WebViewDescriptor = Descriptor<"WebView", ViewBaseProps, WebViewState, WebViewProps>
159
+
160
+ export class WebViewViewDescriptorWrapper extends ViewDescriptorWrapperBase<"WebView", ViewBaseProps, WebViewState, WebViewProps> {
161
+ }
162
+
163
+
164
+ export const ZERO: number = 0
165
+
166
+ export const EIGHT: number = 8;
167
+
168
+ export const ONE_HUNDRED: number = 100
169
+
170
+ export const REFRESH_OFFSET: number = 120
171
+
172
+ export const MINHEIGHT: number = 1
173
+
174
+ export interface ProgressInterface {
175
+ progress: number;
176
+ }
177
+
178
+ export interface LoadingErrorInterface {
179
+ code: number,
180
+ description: string
181
+ }
182
+
183
+ export interface ScrollInterface {
184
+ x: number,
185
+ y: number
186
+ }
187
+
188
+ export enum WebViewOverScrollMode {
189
+ ALWAYS = "always",
190
+ NEVER = "never"
191
+ }
192
+
193
+ export enum COMMAND_NAME {
194
+ INJECTJAVASCRIPT = 'injectJavaScript',
195
+ POSTMESSAGE = 'postMessage',
196
+ RELOAD = 'reload',
197
+ GOBACK = 'goBack',
198
+ GOFORWARD = 'goForward',
199
+ REQUESTFOCUS = 'requestFocus',
200
+ CLEARCACHE = 'clearCache',
201
+ CLEARHISTORY = 'clearHistory',
202
+ STOPLOADING = 'stopLoading',
203
+ LOADURL = 'loadUrl'
204
+ }
205
+
206
+ interface RenderExitReasonMessageItem {
207
+ errorDomain: string
208
+ errorDesc: string
209
+ }
210
+
211
+ export const RenderExitReasonMessage = new Map<number, RenderExitReasonMessageItem>()
212
+
213
+ RenderExitReasonMessage.set(0,
214
+ { errorDomain: 'ProcessAbnormalTermination', errorDesc: "The rendering process exits abnormally." })
215
+ RenderExitReasonMessage.set(1,
216
+ { errorDomain: 'ProcessWasKilled', errorDesc: "SIGKILL is received or manually terminated." })
217
+ RenderExitReasonMessage.set(2,
218
+ { errorDomain: 'ProcessCrashed', errorDesc: "The rendering process crashes and exits, such as a segment error." })
219
+ RenderExitReasonMessage.set(3,
220
+ { errorDomain: 'ProcessOom', errorDesc: "The program is out of memory." })
221
+ RenderExitReasonMessage.set(4,
222
+ { errorDomain: 'ProcessExitUnknown', errorDesc: "Other reasons." })
223
+