@react-native-ohos/react-native-webview 13.10.5-rc.2 → 13.15.1-rc.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 (44) hide show
  1. package/LICENSE +1 -1
  2. package/README.OpenSource +11 -0
  3. package/README.md +2 -2
  4. package/harmony/rn_webview/index.ets +4 -25
  5. package/harmony/rn_webview/oh-package.json5 +2 -2
  6. package/harmony/rn_webview/src/main/cpp/WebViewPackage.h +4 -24
  7. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/BaseReactNativeWebviewPackage.h +69 -69
  8. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/components/RNCWebViewJSIBinder.h +109 -116
  9. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.cpp +1 -3
  10. package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.cpp +1 -3
  11. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ComponentDescriptors.h +7 -5
  12. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.cpp +231 -230
  13. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.h +250 -272
  14. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.cpp +62 -110
  15. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.h +494 -322
  16. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.cpp +4 -6
  17. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.h +7 -9
  18. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.cpp +5 -5
  19. package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.h +14 -5
  20. package/harmony/rn_webview/src/main/ets/CutomReference.ts +3 -23
  21. package/harmony/rn_webview/src/main/ets/Logger.ts +3 -23
  22. package/harmony/rn_webview/src/main/ets/Magic.ets +3 -24
  23. package/harmony/rn_webview/src/main/ets/RNCWebView.ets +7 -81
  24. package/harmony/rn_webview/src/main/ets/RNCWebViewPackage.ets +5 -33
  25. package/harmony/rn_webview/src/main/ets/ShouldRequestUrl.ts +3 -23
  26. package/harmony/rn_webview/src/main/ets/WebViewBaseOperate.ets +3 -23
  27. package/harmony/rn_webview/src/main/ets/WebViewTurboModule.ets +3 -23
  28. package/harmony/rn_webview/src/main/ets/generated/components/RNCWebView.ts +47 -32
  29. package/harmony/rn_webview/ts.ets +3 -23
  30. package/harmony/rn_webview.har +0 -0
  31. package/package.json +11 -16
  32. package/src/NativeRNCWebView.ts +6 -0
  33. package/src/NativeRNCWebViewModule.ts +5 -3
  34. package/src/RNCWebViewNativeComponent.ts +158 -90
  35. package/src/WebView.harmony.tsx +17 -4
  36. package/src/WebView.tsx +6 -0
  37. package/src/codegenUtils.ts +5 -3
  38. package/src/index.ts +6 -0
  39. package/harmony/rn_webview/BuildProfile.ets +0 -41
  40. package/harmony/rn_webview/LICENSE +0 -21
  41. package/harmony/rn_webview/NOTICE +0 -33
  42. package/harmony/rn_webview/README.OpenSource +0 -11
  43. package/harmony/rn_webview/consumer-rules.txt +0 -0
  44. package/harmony/rn_webview/obfuscation-rules.txt +0 -18
@@ -44,19 +44,21 @@ export namespace RNCWebView {
44
44
  thirdPartyCookiesEnabled?: boolean;
45
45
  hasOnScroll?: boolean;
46
46
  injectedJavaScriptObject?: string;
47
+ paymentRequestEnabled?: boolean;
47
48
  allowingReadAccessToURL?: string;
48
49
  allowsBackForwardNavigationGestures?: boolean;
49
50
  allowsInlineMediaPlayback?: boolean;
51
+ allowsPictureInPictureMediaPlayback?: boolean;
50
52
  allowsAirPlayForMediaPlayback?: boolean;
51
53
  allowsLinkPreview?: boolean;
52
54
  automaticallyAdjustContentInsets?: boolean;
53
55
  ignoreSilentHardwareSwitch?: boolean;
54
56
  autoManageStatusBarEnabled?: boolean;
55
57
  bounces?: boolean;
56
- contentInset?: unknown;
58
+ contentInset?: {top?: number, left?: number, bottom?: number, right?: number};
57
59
  contentInsetAdjustmentBehavior?: 'never' | 'automatic' | 'scrollableAxes' | 'always';
58
60
  contentMode?: 'recommended' | 'mobile' | 'desktop';
59
- dataDetectorTypes?: unknown;
61
+ dataDetectorTypes?: 'address' | 'link' | 'calendarEvent' | 'trackingNumber' | 'flightNumber' | 'lookupSuggestion' | 'phoneNumber' | 'all' | 'none'[];
60
62
  decelerationRate?: number;
61
63
  directionalLockEnabled?: boolean;
62
64
  enableApplePay?: boolean;
@@ -66,18 +68,19 @@ export namespace RNCWebView {
66
68
  mediaCapturePermissionGrantType?: 'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny';
67
69
  pagingEnabled?: boolean;
68
70
  pullToRefreshEnabled?: boolean;
71
+ refreshControlLightMode?: boolean;
69
72
  scrollEnabled?: boolean;
70
73
  sharedCookiesEnabled?: boolean;
71
74
  textInteractionEnabled?: boolean;
72
75
  useSharedProcessPool?: boolean;
73
- menuItems?: unknown;
74
- suppressMenuItems?: unknown[];
76
+ menuItems?: {label: string, key: string}[];
77
+ suppressMenuItems?: string[];
75
78
  hasOnFileDownload?: boolean;
76
79
  fraudulentWebsiteWarningEnabled?: boolean;
77
80
  allowFileAccessFromFileURLs?: boolean;
78
81
  allowUniversalAccessFromFileURLs?: boolean;
79
82
  applicationNameForUserAgent?: string;
80
- basicAuthCredential?: unknown;
83
+ basicAuthCredential?: {username: string, password: string};
81
84
  cacheEnabled?: boolean;
82
85
  incognito?: boolean;
83
86
  injectedJavaScript?: string;
@@ -93,9 +96,9 @@ export namespace RNCWebView {
93
96
  hasOnOpenWindowEvent?: boolean;
94
97
  showsHorizontalScrollIndicator?: boolean;
95
98
  showsVerticalScrollIndicator?: boolean;
96
- newSource: unknown;
99
+ indicatorStyle?: 'default' | 'black' | 'white';
100
+ newSource: {uri?: string, method?: string, body?: string, headers?: {name: string, value: string}[], html?: string, baseUrl?: string};
97
101
  userAgent?: string;
98
- schemeList?: unknown;
99
102
  }
100
103
 
101
104
  export interface Props extends ViewBaseProps {}
@@ -170,11 +173,11 @@ export namespace RNCWebView {
170
173
  }
171
174
 
172
175
  get scalesPageToFit() {
173
- return this.rawProps.scalesPageToFit ?? false;
176
+ return this.rawProps.scalesPageToFit ?? true;
174
177
  }
175
178
 
176
179
  get setBuiltInZoomControls() {
177
- return this.rawProps.setBuiltInZoomControls ?? false;
180
+ return this.rawProps.setBuiltInZoomControls ?? true;
178
181
  }
179
182
 
180
183
  get setDisplayZoomControls() {
@@ -182,7 +185,7 @@ export namespace RNCWebView {
182
185
  }
183
186
 
184
187
  get setSupportMultipleWindows() {
185
- return this.rawProps.setSupportMultipleWindows ?? false;
188
+ return this.rawProps.setSupportMultipleWindows ?? true;
186
189
  }
187
190
 
188
191
  get textZoom() {
@@ -190,7 +193,7 @@ export namespace RNCWebView {
190
193
  }
191
194
 
192
195
  get thirdPartyCookiesEnabled() {
193
- return this.rawProps.thirdPartyCookiesEnabled ?? false;
196
+ return this.rawProps.thirdPartyCookiesEnabled ?? true;
194
197
  }
195
198
 
196
199
  get hasOnScroll() {
@@ -201,6 +204,10 @@ export namespace RNCWebView {
201
204
  return this.rawProps.injectedJavaScriptObject;
202
205
  }
203
206
 
207
+ get paymentRequestEnabled() {
208
+ return this.rawProps.paymentRequestEnabled ?? false;
209
+ }
210
+
204
211
  get allowingReadAccessToURL() {
205
212
  return this.rawProps.allowingReadAccessToURL;
206
213
  }
@@ -213,16 +220,20 @@ export namespace RNCWebView {
213
220
  return this.rawProps.allowsInlineMediaPlayback ?? false;
214
221
  }
215
222
 
223
+ get allowsPictureInPictureMediaPlayback() {
224
+ return this.rawProps.allowsPictureInPictureMediaPlayback ?? false;
225
+ }
226
+
216
227
  get allowsAirPlayForMediaPlayback() {
217
228
  return this.rawProps.allowsAirPlayForMediaPlayback ?? false;
218
229
  }
219
230
 
220
231
  get allowsLinkPreview() {
221
- return this.rawProps.allowsLinkPreview ?? false;
232
+ return this.rawProps.allowsLinkPreview ?? true;
222
233
  }
223
234
 
224
235
  get automaticallyAdjustContentInsets() {
225
- return this.rawProps.automaticallyAdjustContentInsets ?? false;
236
+ return this.rawProps.automaticallyAdjustContentInsets ?? true;
226
237
  }
227
238
 
228
239
  get ignoreSilentHardwareSwitch() {
@@ -230,11 +241,11 @@ export namespace RNCWebView {
230
241
  }
231
242
 
232
243
  get autoManageStatusBarEnabled() {
233
- return this.rawProps.autoManageStatusBarEnabled ?? false;
244
+ return this.rawProps.autoManageStatusBarEnabled ?? true;
234
245
  }
235
246
 
236
247
  get bounces() {
237
- return this.rawProps.bounces ?? false;
248
+ return this.rawProps.bounces ?? true;
238
249
  }
239
250
 
240
251
  get contentInset() {
@@ -258,7 +269,7 @@ export namespace RNCWebView {
258
269
  }
259
270
 
260
271
  get directionalLockEnabled() {
261
- return this.rawProps.directionalLockEnabled ?? false;
272
+ return this.rawProps.directionalLockEnabled ?? true;
262
273
  }
263
274
 
264
275
  get enableApplePay() {
@@ -270,7 +281,7 @@ export namespace RNCWebView {
270
281
  }
271
282
 
272
283
  get keyboardDisplayRequiresUserAction() {
273
- return this.rawProps.keyboardDisplayRequiresUserAction ?? false;
284
+ return this.rawProps.keyboardDisplayRequiresUserAction ?? true;
274
285
  }
275
286
 
276
287
  get limitsNavigationsToAppBoundDomains() {
@@ -289,8 +300,12 @@ export namespace RNCWebView {
289
300
  return this.rawProps.pullToRefreshEnabled ?? false;
290
301
  }
291
302
 
303
+ get refreshControlLightMode() {
304
+ return this.rawProps.refreshControlLightMode ?? false;
305
+ }
306
+
292
307
  get scrollEnabled() {
293
- return this.rawProps.scrollEnabled ?? false;
308
+ return this.rawProps.scrollEnabled ?? true;
294
309
  }
295
310
 
296
311
  get sharedCookiesEnabled() {
@@ -298,11 +313,11 @@ export namespace RNCWebView {
298
313
  }
299
314
 
300
315
  get textInteractionEnabled() {
301
- return this.rawProps.textInteractionEnabled ?? false;
316
+ return this.rawProps.textInteractionEnabled ?? true;
302
317
  }
303
318
 
304
319
  get useSharedProcessPool() {
305
- return this.rawProps.useSharedProcessPool ?? false;
320
+ return this.rawProps.useSharedProcessPool ?? true;
306
321
  }
307
322
 
308
323
  get menuItems() {
@@ -318,7 +333,7 @@ export namespace RNCWebView {
318
333
  }
319
334
 
320
335
  get fraudulentWebsiteWarningEnabled() {
321
- return this.rawProps.fraudulentWebsiteWarningEnabled ?? false;
336
+ return this.rawProps.fraudulentWebsiteWarningEnabled ?? true;
322
337
  }
323
338
 
324
339
  get allowFileAccessFromFileURLs() {
@@ -338,7 +353,7 @@ export namespace RNCWebView {
338
353
  }
339
354
 
340
355
  get cacheEnabled() {
341
- return this.rawProps.cacheEnabled ?? false;
356
+ return this.rawProps.cacheEnabled ?? true;
342
357
  }
343
358
 
344
359
  get incognito() {
@@ -354,11 +369,11 @@ export namespace RNCWebView {
354
369
  }
355
370
 
356
371
  get injectedJavaScriptForMainFrameOnly() {
357
- return this.rawProps.injectedJavaScriptForMainFrameOnly ?? false;
372
+ return this.rawProps.injectedJavaScriptForMainFrameOnly ?? true;
358
373
  }
359
374
 
360
375
  get injectedJavaScriptBeforeContentLoadedForMainFrameOnly() {
361
- return this.rawProps.injectedJavaScriptBeforeContentLoadedForMainFrameOnly ?? false;
376
+ return this.rawProps.injectedJavaScriptBeforeContentLoadedForMainFrameOnly ?? true;
362
377
  }
363
378
 
364
379
  get javaScriptCanOpenWindowsAutomatically() {
@@ -366,7 +381,7 @@ export namespace RNCWebView {
366
381
  }
367
382
 
368
383
  get javaScriptEnabled() {
369
- return this.rawProps.javaScriptEnabled ?? false;
384
+ return this.rawProps.javaScriptEnabled ?? true;
370
385
  }
371
386
 
372
387
  get webviewDebuggingEnabled() {
@@ -374,7 +389,7 @@ export namespace RNCWebView {
374
389
  }
375
390
 
376
391
  get mediaPlaybackRequiresUserAction() {
377
- return this.rawProps.mediaPlaybackRequiresUserAction ?? false;
392
+ return this.rawProps.mediaPlaybackRequiresUserAction ?? true;
378
393
  }
379
394
 
380
395
  get messagingEnabled() {
@@ -390,11 +405,15 @@ export namespace RNCWebView {
390
405
  }
391
406
 
392
407
  get showsHorizontalScrollIndicator() {
393
- return this.rawProps.showsHorizontalScrollIndicator ?? false;
408
+ return this.rawProps.showsHorizontalScrollIndicator ?? true;
394
409
  }
395
410
 
396
411
  get showsVerticalScrollIndicator() {
397
- return this.rawProps.showsVerticalScrollIndicator ?? false;
412
+ return this.rawProps.showsVerticalScrollIndicator ?? true;
413
+ }
414
+
415
+ get indicatorStyle() {
416
+ return this.rawProps.indicatorStyle ?? 'default';
398
417
  }
399
418
 
400
419
  get newSource() {
@@ -405,10 +424,6 @@ export namespace RNCWebView {
405
424
  return this.rawProps.userAgent;
406
425
  }
407
426
 
408
- get schemeList() {
409
- return this.rawProps.schemeList;
410
- }
411
-
412
427
 
413
428
  }
414
429
 
@@ -1,26 +1,6 @@
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
- */
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.
24
4
 
25
5
  import {RNCWebViewPackage as WebViewPackage} from './src/main/ets/RNCWebViewPackage'
26
6
 
Binary file
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  "Thibault Malbranche <malbranche.thibault@gmail.com>"
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "13.10.5-rc.2",
13
- "homepage": "https://github.com/react-native-oh-library/react-native-webview#readme",
12
+ "version": "13.15.1-rc.3",
13
+ "homepage": "https://gitcode.com/openharmony-sig/rntpc_react-native-webview/tree/br_rnoh0.77#readme",
14
14
  "scripts": {
15
15
  "macos": "react-native run-macos --scheme WebviewExample --project-path example/macos",
16
16
  "start": "react-native start",
@@ -35,9 +35,9 @@
35
35
  "react-native": "*"
36
36
  },
37
37
  "dependencies": {
38
- "escape-string-regexp": "2.0.0",
38
+ "escape-string-regexp": "^4.0.0",
39
39
  "invariant": "2.2.4",
40
- "react-native-webview": "13.10.2"
40
+ "react-native-webview": "13.15.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@babel/cli": "^7.20.0",
@@ -48,20 +48,21 @@
48
48
  "@react-native/eslint-config": "0.73.2",
49
49
  "@react-native/metro-config": "0.73.5",
50
50
  "@react-native/typescript-config": "0.73.1",
51
- "@rnoh/react-native-harmony-cli": "npm:@react-native-oh/react-native-harmony-cli@^0.0.27",
51
+ "@react-native-oh/react-native-harmony-cli": "file:./packages/react-native-oh-react-native-harmony-cli-0.77.18.tgz",
52
52
  "@rnx-kit/metro-config": "1.3.15",
53
53
  "@semantic-release/git": "7.0.16",
54
54
  "@types/invariant": "^2.2.30",
55
55
  "@types/jest": "^29.5.12",
56
56
  "@types/react": "18.2.61",
57
57
  "@types/selenium-webdriver": "4.0.9",
58
+ "@types/minimatch": "^5.1.2",
58
59
  "appium": "1.17.0",
59
60
  "eslint": "8.57.0",
60
61
  "jest": "^29.6.3",
61
62
  "metro-react-native-babel-preset": "0.73.7",
62
63
  "prettier": "2.8.8",
63
- "react": "18.2.0",
64
- "react-native": "0.73.5",
64
+ "react": "18.3.1",
65
+ "react-native": "0.77.1",
65
66
  "react-native-macos": "0.73.17",
66
67
  "react-native-test-app": "3.7.2",
67
68
  "react-native-windows": "0.73.8",
@@ -73,7 +74,7 @@
73
74
  },
74
75
  "repository": {
75
76
  "type": "git",
76
- "url": "git://github.com/react-native-oh-library/react-native-webview.git"
77
+ "url": "https://gitcode.com/openharmony-sig/rntpc_react-native-webview.git"
77
78
  },
78
79
  "files": [
79
80
  "src",
@@ -89,16 +90,10 @@
89
90
  ],
90
91
  "publishConfig": {
91
92
  "registry": "https://registry.npmjs.org/",
92
- "access": "public"
93
+ "access": "public"
93
94
  },
94
95
  "harmony": {
95
- "alias": "react-native-webview",
96
- "autolinking": {
97
- "etsPackageClassName":"WebViewPackage",
98
- "cppPackageClassName":"WebViewPackage",
99
- "cmakeLibraryTargetName": "rnoh_webview",
100
- "ohPackageName": "@react-native-ohos/react-native-webview"
101
- }
96
+ "alias": "react-native-webview"
102
97
  },
103
98
  "packageManager": "yarn@1.22.19"
104
99
  }
@@ -1,3 +1,9 @@
1
+ /*
2
+ * Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
1
7
  import type { TurboModule } from 'react-native';
2
8
  import { TurboModuleRegistry } from 'react-native';
3
9
  import { Double } from 'react-native/Libraries/Types/CodegenTypes';
@@ -1,6 +1,8 @@
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.
1
+ /*
2
+ * Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
4
6
 
5
7
  import type { TurboModule } from 'react-native';
6
8
  import { TurboModuleRegistry } from 'react-native';