@react-native-ohos/react-native-webview 13.15.3 → 13.15.4-beta.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 (59) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/LICENSE +20 -20
  3. package/README.OpenSource +10 -10
  4. package/README.md +395 -13
  5. package/harmony/rn_webview/.gitignore +6 -0
  6. package/harmony/rn_webview/BuildProfile.ets +17 -0
  7. package/harmony/rn_webview/OAT.xml +44 -44
  8. package/harmony/rn_webview/build-profile.json5 +28 -28
  9. package/harmony/rn_webview/index.ets +12 -12
  10. package/harmony/rn_webview/oh-package-lock.json5 +18 -0
  11. package/harmony/rn_webview/oh-package.json5 +13 -13
  12. package/harmony/rn_webview/src/main/cpp/CMakeLists.txt +9 -9
  13. package/harmony/rn_webview/src/main/cpp/WebViewPackage.h +16 -16
  14. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/BaseReactNativeWebviewPackage.h +95 -95
  15. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/components/RNCWebViewJSIBinder.h +127 -127
  16. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.cpp +18 -18
  17. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.h +16 -16
  18. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.cpp +17 -17
  19. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.h +16 -16
  20. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ComponentDescriptors.h +24 -24
  21. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.cpp +241 -241
  22. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.h +263 -263
  23. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.cpp +109 -109
  24. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.h +512 -512
  25. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.cpp +17 -17
  26. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.h +32 -32
  27. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.cpp +16 -16
  28. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.h +28 -28
  29. package/harmony/rn_webview/src/main/ets/CutomReference.ts +29 -29
  30. package/harmony/rn_webview/src/main/ets/Logger.ts +43 -43
  31. package/harmony/rn_webview/src/main/ets/Magic.ets +200 -200
  32. package/harmony/rn_webview/src/main/ets/RNCWebView.ets +842 -889
  33. package/harmony/rn_webview/src/main/ets/RNCWebViewPackage.ets +37 -37
  34. package/harmony/rn_webview/src/main/ets/ShouldRequestUrl.ts +47 -47
  35. package/harmony/rn_webview/src/main/ets/WebViewBaseOperate.ets +470 -470
  36. package/harmony/rn_webview/src/main/ets/WebViewTurboModule.ets +62 -62
  37. package/harmony/rn_webview/src/main/ets/generated/components/RNCWebView.ts +530 -530
  38. package/harmony/rn_webview/src/main/ets/generated/components/ts.ts +5 -5
  39. package/harmony/rn_webview/src/main/ets/generated/index.ets +5 -5
  40. package/harmony/rn_webview/src/main/ets/generated/ts.ts +6 -6
  41. package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebView.ts +18 -18
  42. package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebViewModule.ts +16 -16
  43. package/harmony/rn_webview/src/main/ets/generated/turboModules/ts.ts +6 -6
  44. package/harmony/rn_webview/src/main/module.json5 +10 -10
  45. package/harmony/rn_webview/src/main/resources/base/element/string.json +39 -39
  46. package/harmony/rn_webview/src/main/resources/en_US/element/string.json +39 -39
  47. package/harmony/rn_webview/src/main/resources/zh_CN/element/string.json +39 -39
  48. package/harmony/rn_webview/src/test/List.test.ets +4 -4
  49. package/harmony/rn_webview/src/test/LocalUnit.test.ets +32 -32
  50. package/harmony/rn_webview/ts.ets +8 -8
  51. package/harmony/rn_webview.har +0 -0
  52. package/package.json +100 -99
  53. package/src/NativeRNCWebView.ts +21 -21
  54. package/src/NativeRNCWebViewModule.ts +19 -19
  55. package/src/RNCWebViewNativeComponent.ts +357 -357
  56. package/src/WebView.harmony.tsx +344 -344
  57. package/src/WebView.tsx +10 -10
  58. package/src/codegenUtils.ts +10 -10
  59. package/src/index.ts +10 -10
@@ -1,200 +1,200 @@
1
- // Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
2
- // Use of this source code is governed by a Apache-2.0 license that can be
3
- // found in the LICENSE file.
4
-
5
- import { Descriptor, ViewBaseProps, ViewDescriptorWrapperBase, ViewRawProps } from '@rnoh/react-native-openharmony'
6
-
7
- export class WebViewNewSourceHeader {
8
- name?: string
9
- value?: string
10
- }
11
-
12
-
13
- export class WebViewNewSource {
14
- uri?: string | Resource
15
- method?: string
16
- body?: string
17
- headers?: WebViewNewSourceHeader[]
18
- html?: string
19
- baseUrl?: string
20
- }
21
-
22
- export interface AlertEvent {
23
- url: string;
24
- message: string;
25
- result: JsResult;
26
- }
27
-
28
- export const TAG = "WebView"
29
-
30
- export const WEB_VIEW = "RNCWebView"
31
-
32
- export const JAVASCRIPT_INTERFACE = "ReactNativeWebView";
33
-
34
- export interface WebViewProps extends ViewRawProps {
35
- width: number
36
- height: number
37
- newSource: WebViewNewSource
38
- javaScriptEnabled: boolean
39
- injectedJavaScript: string
40
- messagingEnabled: boolean
41
- showsHorizontalScrollIndicator: boolean
42
- showsVerticalScrollIndicator: boolean
43
- textZoom: number
44
- cacheEnabled: boolean
45
- cacheMode: CACHE_MODE
46
- domStorageEnabled: boolean
47
- scalesPageToFit: boolean
48
- hasOnShouldStartLoadWithRequestEvent?: boolean
49
- messagingModuleName: string
50
- webviewDebuggingEnabled: boolean
51
- scrollEnabled: boolean
52
- incognito: boolean
53
- userAgent: string
54
- shouldStartLoadWithRequestEnabled: boolean
55
- originWhitelist: Array<string>
56
- thirdPartyCookiesEnabled: boolean
57
- fraudulentWebsiteWarningEnabled: boolean
58
- ignoreSilentHardwareSwitch: boolean
59
- forceDarkOn: boolean
60
- minimumFontSize: number
61
- bounces: boolean
62
- injectedJavaScriptBeforeContentLoaded: string
63
- overScrollMode: WebViewOverScrollMode,
64
- mediaPlaybackRequiresUserAction: boolean
65
- geolocationEnabled: boolean
66
- applicationNameForUserAgent: string
67
- pullToRefreshEnabled: boolean
68
- schemeList: Array<string>
69
- mediaCapturePermissionGrantType?: 'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny'
70
- menuItems?: Array<MenuItem> | undefined;
71
- }
72
-
73
- export interface MenuItem {
74
- label: string,
75
- key: string
76
- }
77
-
78
- export enum WebMediaCapturePermissionGrantType {
79
- GRANT_IF_SAME_HOST_ELSE_PROMPT = "grantIfSameHostElsePrompt",
80
- GRANT_IF_SAME_HOST_ELSE_DENY = "grantIfSameHostElseDeny",
81
- DENY = "deny",
82
- GRANT = "grant",
83
- PROMPT = "prompt",
84
- }
85
-
86
- export class RNCWebViewBridge {
87
- postMessage!: (data: string) => void;
88
- }
89
-
90
- export class WebViewEventParams {
91
- type: string
92
- url?: string
93
- loading?: boolean
94
- title?: string
95
- canGoBack?: boolean
96
- canGoForward?: boolean
97
- lockIdentifier?: number
98
- data?: string
99
-
100
- constructor(type: string) {
101
- this.type = type
102
- }
103
- }
104
-
105
- export enum CACHE_MODE {
106
- 'LOAD_DEFAULT' = 'LOAD_DEFAULT',
107
- 'LOAD_CACHE_ELSE_NETWORK' = 'LOAD_CACHE_ELSE_NETWORK',
108
- 'LOAD_NO_CACHE' = 'LOAD_NO_CACHE',
109
- 'LOAD_CACHE_ONLY' = 'LOAD_CACHE_ONLY',
110
- }
111
-
112
- export class ResultType {
113
- url: string
114
- loading: boolean
115
- title: string
116
- canGoBack: boolean
117
- canGoForward: boolean
118
- lockIdentifier: number
119
- data: string
120
-
121
- constructor(url: string, loading: boolean, title: string, canGoBack: boolean, canGoForward: boolean,
122
- lockIdentifier: number, data: string) {
123
- this.url = url
124
- this.loading = loading
125
- this.title = title
126
- this.canGoBack = canGoBack
127
- this.canGoForward = canGoForward
128
- this.lockIdentifier = lockIdentifier
129
- this.data = data
130
- }
131
- }
132
-
133
- interface WebViewState {}
134
-
135
- export type WebViewDescriptor = Descriptor<"WebView", ViewBaseProps, WebViewState, WebViewProps>
136
-
137
- export class WebViewViewDescriptorWrapper extends ViewDescriptorWrapperBase<"WebView", ViewBaseProps, WebViewState, WebViewProps> {
138
- }
139
-
140
-
141
- export const ZERO: number = 0
142
-
143
- export const EIGHT: number = 8;
144
-
145
- export const ONE_HUNDRED: number = 100
146
-
147
- export const REFRESH_OFFSET: number = 120
148
-
149
- export const MINHEIGHT: number = 1
150
-
151
- export interface ProgressInterface {
152
- progress: number;
153
- }
154
-
155
- export interface LoadingErrorInterface {
156
- code: number,
157
- description: string
158
- }
159
-
160
- export interface ScrollInterface {
161
- x: number,
162
- y: number
163
- }
164
-
165
- export enum WebViewOverScrollMode {
166
- ALWAYS = "always",
167
- NEVER = "never"
168
- }
169
-
170
- export enum COMMAND_NAME {
171
- INJECTJAVASCRIPT = 'injectJavaScript',
172
- POSTMESSAGE = 'postMessage',
173
- RELOAD = 'reload',
174
- GOBACK = 'goBack',
175
- GOFORWARD = 'goForward',
176
- REQUESTFOCUS = 'requestFocus',
177
- CLEARCACHE = 'clearCache',
178
- CLEARHISTORY = 'clearHistory',
179
- STOPLOADING = 'stopLoading',
180
- LOADURL = 'loadUrl'
181
- }
182
-
183
- interface RenderExitReasonMessageItem {
184
- errorDomain: string
185
- errorDesc: string
186
- }
187
-
188
- export const RenderExitReasonMessage = new Map<number, RenderExitReasonMessageItem>()
189
-
190
- RenderExitReasonMessage.set(0,
191
- { errorDomain: 'ProcessAbnormalTermination', errorDesc: "The rendering process exits abnormally." })
192
- RenderExitReasonMessage.set(1,
193
- { errorDomain: 'ProcessWasKilled', errorDesc: "SIGKILL is received or manually terminated." })
194
- RenderExitReasonMessage.set(2,
195
- { errorDomain: 'ProcessCrashed', errorDesc: "The rendering process crashes and exits, such as a segment error." })
196
- RenderExitReasonMessage.set(3,
197
- { errorDomain: 'ProcessOom', errorDesc: "The program is out of memory." })
198
- RenderExitReasonMessage.set(4,
199
- { errorDomain: 'ProcessExitUnknown', errorDesc: "Other reasons." })
200
-
1
+ // Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
2
+ // Use of this source code is governed by a Apache-2.0 license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import { Descriptor, ViewBaseProps, ViewDescriptorWrapperBase, ViewRawProps } from '@rnoh/react-native-openharmony'
6
+
7
+ export class WebViewNewSourceHeader {
8
+ name?: string
9
+ value?: string
10
+ }
11
+
12
+
13
+ export class WebViewNewSource {
14
+ uri?: string | Resource
15
+ method?: string
16
+ body?: string
17
+ headers?: WebViewNewSourceHeader[]
18
+ html?: string
19
+ baseUrl?: string
20
+ }
21
+
22
+ export interface AlertEvent {
23
+ url: string;
24
+ message: string;
25
+ result: JsResult;
26
+ }
27
+
28
+ export const TAG = "WebView"
29
+
30
+ export const WEB_VIEW = "RNCWebView"
31
+
32
+ export const JAVASCRIPT_INTERFACE = "ReactNativeWebView";
33
+
34
+ export interface WebViewProps extends ViewRawProps {
35
+ width: number
36
+ height: number
37
+ newSource: WebViewNewSource
38
+ javaScriptEnabled: boolean
39
+ injectedJavaScript: string
40
+ messagingEnabled: boolean
41
+ showsHorizontalScrollIndicator: boolean
42
+ showsVerticalScrollIndicator: boolean
43
+ textZoom: number
44
+ cacheEnabled: boolean
45
+ cacheMode: CACHE_MODE
46
+ domStorageEnabled: boolean
47
+ scalesPageToFit: boolean
48
+ hasOnShouldStartLoadWithRequestEvent?: boolean
49
+ messagingModuleName: string
50
+ webviewDebuggingEnabled: boolean
51
+ scrollEnabled: boolean
52
+ incognito: boolean
53
+ userAgent: string
54
+ shouldStartLoadWithRequestEnabled: boolean
55
+ originWhitelist: Array<string>
56
+ thirdPartyCookiesEnabled: boolean
57
+ fraudulentWebsiteWarningEnabled: boolean
58
+ ignoreSilentHardwareSwitch: boolean
59
+ forceDarkOn: boolean
60
+ minimumFontSize: number
61
+ bounces: boolean
62
+ injectedJavaScriptBeforeContentLoaded: string
63
+ overScrollMode: WebViewOverScrollMode,
64
+ mediaPlaybackRequiresUserAction: boolean
65
+ geolocationEnabled: boolean
66
+ applicationNameForUserAgent: string
67
+ pullToRefreshEnabled: boolean
68
+ renderMode: 'SYNC_RENDER' | 'ASYNC_RENDER'
69
+ mediaCapturePermissionGrantType?: 'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny'
70
+ menuItems?: Array<MenuItem> | undefined;
71
+ }
72
+
73
+ export interface MenuItem {
74
+ label: string,
75
+ key: string
76
+ }
77
+
78
+ export enum WebMediaCapturePermissionGrantType {
79
+ GRANT_IF_SAME_HOST_ELSE_PROMPT = "grantIfSameHostElsePrompt",
80
+ GRANT_IF_SAME_HOST_ELSE_DENY = "grantIfSameHostElseDeny",
81
+ DENY = "deny",
82
+ GRANT = "grant",
83
+ PROMPT = "prompt",
84
+ }
85
+
86
+ export class RNCWebViewBridge {
87
+ postMessage!: (data: string) => void;
88
+ }
89
+
90
+ export class WebViewEventParams {
91
+ type: string
92
+ url?: string
93
+ loading?: boolean
94
+ title?: string
95
+ canGoBack?: boolean
96
+ canGoForward?: boolean
97
+ lockIdentifier?: number
98
+ data?: string
99
+
100
+ constructor(type: string) {
101
+ this.type = type
102
+ }
103
+ }
104
+
105
+ export enum CACHE_MODE {
106
+ 'LOAD_DEFAULT' = 'LOAD_DEFAULT',
107
+ 'LOAD_CACHE_ELSE_NETWORK' = 'LOAD_CACHE_ELSE_NETWORK',
108
+ 'LOAD_NO_CACHE' = 'LOAD_NO_CACHE',
109
+ 'LOAD_CACHE_ONLY' = 'LOAD_CACHE_ONLY',
110
+ }
111
+
112
+ export class ResultType {
113
+ url: string
114
+ loading: boolean
115
+ title: string
116
+ canGoBack: boolean
117
+ canGoForward: boolean
118
+ lockIdentifier: number
119
+ data: string
120
+
121
+ constructor(url: string, loading: boolean, title: string, canGoBack: boolean, canGoForward: boolean,
122
+ lockIdentifier: number, data: string) {
123
+ this.url = url
124
+ this.loading = loading
125
+ this.title = title
126
+ this.canGoBack = canGoBack
127
+ this.canGoForward = canGoForward
128
+ this.lockIdentifier = lockIdentifier
129
+ this.data = data
130
+ }
131
+ }
132
+
133
+ interface WebViewState {}
134
+
135
+ export type WebViewDescriptor = Descriptor<"WebView", ViewBaseProps, WebViewState, WebViewProps>
136
+
137
+ export class WebViewViewDescriptorWrapper extends ViewDescriptorWrapperBase<"WebView", ViewBaseProps, WebViewState, WebViewProps> {
138
+ }
139
+
140
+
141
+ export const ZERO: number = 0
142
+
143
+ export const EIGHT: number = 8;
144
+
145
+ export const ONE_HUNDRED: number = 100
146
+
147
+ export const REFRESH_OFFSET: number = 120
148
+
149
+ export const MINHEIGHT: number = 1
150
+
151
+ export interface ProgressInterface {
152
+ progress: number;
153
+ }
154
+
155
+ export interface LoadingErrorInterface {
156
+ code: number,
157
+ description: string
158
+ }
159
+
160
+ export interface ScrollInterface {
161
+ x: number,
162
+ y: number
163
+ }
164
+
165
+ export enum WebViewOverScrollMode {
166
+ ALWAYS = "always",
167
+ NEVER = "never"
168
+ }
169
+
170
+ export enum COMMAND_NAME {
171
+ INJECTJAVASCRIPT = 'injectJavaScript',
172
+ POSTMESSAGE = 'postMessage',
173
+ RELOAD = 'reload',
174
+ GOBACK = 'goBack',
175
+ GOFORWARD = 'goForward',
176
+ REQUESTFOCUS = 'requestFocus',
177
+ CLEARCACHE = 'clearCache',
178
+ CLEARHISTORY = 'clearHistory',
179
+ STOPLOADING = 'stopLoading',
180
+ LOADURL = 'loadUrl'
181
+ }
182
+
183
+ interface RenderExitReasonMessageItem {
184
+ errorDomain: string
185
+ errorDesc: string
186
+ }
187
+
188
+ export const RenderExitReasonMessage = new Map<number, RenderExitReasonMessageItem>()
189
+
190
+ RenderExitReasonMessage.set(0,
191
+ { errorDomain: 'ProcessAbnormalTermination', errorDesc: "The rendering process exits abnormally." })
192
+ RenderExitReasonMessage.set(1,
193
+ { errorDomain: 'ProcessWasKilled', errorDesc: "SIGKILL is received or manually terminated." })
194
+ RenderExitReasonMessage.set(2,
195
+ { errorDomain: 'ProcessCrashed', errorDesc: "The rendering process crashes and exits, such as a segment error." })
196
+ RenderExitReasonMessage.set(3,
197
+ { errorDomain: 'ProcessOom', errorDesc: "The program is out of memory." })
198
+ RenderExitReasonMessage.set(4,
199
+ { errorDomain: 'ProcessExitUnknown', errorDesc: "Other reasons." })
200
+