@react-native-ohos/react-native-webview 13.10.5-rc.2 → 13.10.5-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.
@@ -6,7 +6,7 @@
6
6
  "name": "@react-native-ohos/react-native-webview",
7
7
  "description": "main cpai architecture",
8
8
  "main": "index.ets",
9
- "version": "13.10.5-rc.2",
9
+ "version": "13.10.5-rc.3",
10
10
  "dependencies": {
11
11
  "@rnoh/react-native-openharmony": "0.72.59"
12
12
  }
@@ -28,6 +28,7 @@ import { url as OSUrl } from '@kit.ArkTS';
28
28
  import { RNC, TM } from './generated';
29
29
  import Logger from './Logger';
30
30
  import { BaseOperate } from './WebViewBaseOperate';
31
+ import { deviceInfo } from '@kit.BasicServicesKit';
31
32
  import {
32
33
  AlertEvent,
33
34
  CACHE_MODE,
@@ -421,78 +422,152 @@ export struct RNCWebView {
421
422
 
422
423
  build() {
423
424
  Stack() {
424
- Web({ src: "", controller: this.controller, renderMode: this.renderMode })
425
- .mixedMode(this.mode)
426
- .onPermissionRequest((event: OnPermissionRequestEvent) => {
427
- if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
428
- AlertDialog.show({
429
- title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
430
- message: this.getPermissionDialogMessage(event),
431
- alignment: DialogAlignment.Center,
432
- primaryButton: {
433
- value: $r('app.string.deny'),
434
- action: () => {
435
- event.request.deny();
436
- }
437
- },
438
- secondaryButton: {
439
- value: $r('app.string.on_confirm'),
440
- action: () => {
441
- event.request.grant(event.request.getAccessibleResource());
442
- }
443
- },
444
- cancel: () => {
445
- event.request.deny();
425
+ if ( deviceInfo.sdkApiVersion >= 20) {
426
+ Web({ src: "", controller: this.controller, renderMode: this.renderMode })
427
+ .mixedMode(this.mode)
428
+ .onPermissionRequest((event: OnPermissionRequestEvent) => {
429
+ if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
430
+ AlertDialog.show({
431
+ title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
432
+ message: this.getPermissionDialogMessage(event),
433
+ alignment: DialogAlignment.Center,
434
+ primaryButton: {
435
+ value: $r('app.string.deny'),
436
+ action: () => {
437
+ event.request.deny();
438
+ }
439
+ },
440
+ secondaryButton: {
441
+ value: $r('app.string.on_confirm'),
442
+ action: () => {
443
+ event.request.grant(event.request.getAccessibleResource());
444
+ }
445
+ },
446
+ cancel: () => {
447
+ event.request.deny();
448
+ }
449
+ })
450
+ }
451
+ })
452
+ .width(this.webviewWidth)
453
+ .height(this.webviewHeight)
454
+ .fileAccess(this.allowFileAccess)
455
+ .constraintSize({ minHeight: MINHEIGHT })
456
+ .overScrollMode(this.overScrollMode)
457
+ .javaScriptAccess(this.javaScriptEnable)
458
+ .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
459
+ .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
460
+ .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
461
+ .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
462
+ .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
463
+ .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
464
+ this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
465
+ .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
466
+ .forceDarkAccess(this.forceDark)
467
+ .cacheMode(this.cacheMode)
468
+ .minFontSize(this.minFontSize)
469
+ .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
470
+ .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
471
+ .overScrollMode(this.overScrollMode)
472
+ .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
473
+ .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
474
+ .nestedScroll({
475
+ scrollForward: this.nestedScroll,
476
+ scrollBackward: this.nestedScroll,
477
+ })
478
+ .onLoadStarted(() => this.onPageBegin())
479
+ .onLoadFinished(() => this.onPageEnd())
480
+ .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
481
+ .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
482
+ .onControllerAttached(() => this.controllerAttachedInit())
483
+ .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
484
+ .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
485
+ .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
486
+ .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
487
+ .onGeolocationShow((event) => {
488
+ if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
489
+ event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
490
+ }
491
+ })
492
+ .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
493
+ .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
494
+ .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
495
+ .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
496
+ } else {
497
+ Web({ src: "", controller: this.controller, renderMode: this.renderMode })
498
+ .mixedMode(this.mode)
499
+ .onPermissionRequest((event: OnPermissionRequestEvent) => {
500
+ if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
501
+ AlertDialog.show({
502
+ title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
503
+ message: this.getPermissionDialogMessage(event),
504
+ alignment: DialogAlignment.Center,
505
+ primaryButton: {
506
+ value: $r('app.string.deny'),
507
+ action: () => {
508
+ event.request.deny();
509
+ }
510
+ },
511
+ secondaryButton: {
512
+ value: $r('app.string.on_confirm'),
513
+ action: () => {
514
+ event.request.grant(event.request.getAccessibleResource());
515
+ }
516
+ },
517
+ cancel: () => {
518
+ event.request.deny();
519
+ }
520
+ })
446
521
  }
447
522
  })
448
- }
449
- })
450
523
 
451
- .width(this.webviewWidth)
452
- .height(this.webviewHeight)
453
- .fileAccess(this.allowFileAccess)
454
- .constraintSize({ minHeight: MINHEIGHT })
455
- .overScrollMode(this.overScrollMode)
456
- .javaScriptAccess(this.javaScriptEnable)
457
- .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
458
- .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
459
- .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
460
- .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
461
- .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
462
- .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
463
- this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
464
- .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
465
- .forceDarkAccess(this.forceDark)
466
- .cacheMode(this.cacheMode)
467
- .minFontSize(this.minFontSize)
468
- .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
469
- .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
470
- .overScrollMode(this.overScrollMode)
471
- .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
472
- .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
473
- .nestedScroll({
474
- scrollForward: this.nestedScroll,
475
- scrollBackward: this.nestedScroll,
476
- })
477
- .onLoadStarted(() => this.onPageBegin())
478
- .onLoadFinished(() => this.onPageEnd())
479
- .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
480
- .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
481
- .onControllerAttached(() => this.controllerAttachedInit())
482
- .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
483
- .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
484
- .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
485
- .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
486
- .onGeolocationShow((event) => {
487
- if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
488
- event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
524
+ .width(this.webviewWidth)
525
+ .height(this.webviewHeight)
526
+ .fileAccess(this.allowFileAccess)
527
+ .constraintSize({ minHeight: MINHEIGHT })
528
+ .overScrollMode(this.overScrollMode)
529
+ .javaScriptAccess(this.javaScriptEnable)
530
+ .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
531
+ .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
532
+ .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
533
+ .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
534
+ .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
535
+ .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
536
+ this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
537
+ .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
538
+ .forceDarkAccess(this.forceDark)
539
+ .cacheMode(this.cacheMode)
540
+ .minFontSize(this.minFontSize)
541
+ .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
542
+ .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
543
+ .overScrollMode(this.overScrollMode)
544
+ .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
545
+ .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
546
+ .nestedScroll({
547
+ scrollForward: this.nestedScroll,
548
+ scrollBackward: this.nestedScroll,
549
+ })
550
+ .onPageBegin(() => this.onPageBegin())
551
+ .onPageEnd(() => this.onPageEnd())
552
+ .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
553
+ .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
554
+ .onControllerAttached(() => this.controllerAttachedInit())
555
+ .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
556
+ .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
557
+ .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
558
+ .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
559
+ .onGeolocationShow((event) => {
560
+ if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
561
+ event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
562
+ }
563
+ })
564
+ .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
565
+ .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
566
+ .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
567
+ .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
568
+
489
569
  }
490
- })
491
- .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
492
- .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
493
- .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
494
- .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
495
- }
570
+ }
496
571
  .width(this.webviewWidth)
497
572
  .height(this.webviewHeight)
498
573
  .position({
Binary file
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "Thibault Malbranche <malbranche.thibault@gmail.com>"
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "13.10.5-rc.2",
12
+ "version": "13.10.5-rc.3",
13
13
  "homepage": "https://github.com/react-native-oh-library/react-native-webview#readme",
14
14
  "scripts": {
15
15
  "macos": "react-native run-macos --scheme WebviewExample --project-path example/macos",