@react-native-ohos/react-native-webview 13.15.1-rc.3 → 13.15.1-rc.4

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.15.1-rc.3",
9
+ "version": "13.15.1-rc.4",
10
10
  "dependencies": {
11
11
  "@rnoh/react-native-openharmony": "../react_native_openharmony.har"
12
12
  }
@@ -8,6 +8,7 @@ import { url as OSUrl } from '@kit.ArkTS';
8
8
  import { RNC, TM } from './generated';
9
9
  import Logger from './Logger';
10
10
  import { BaseOperate } from './WebViewBaseOperate';
11
+ import { deviceInfo } from '@kit.BasicServicesKit';
11
12
  import {
12
13
  AlertEvent,
13
14
  CACHE_MODE,
@@ -381,78 +382,152 @@ export struct RNCWebView {
381
382
 
382
383
  build() {
383
384
  Stack() {
384
- Web({ src: "", controller: this.controller, renderMode: this.renderMode })
385
- .mixedMode(this.mode)
386
- .onPermissionRequest((event: OnPermissionRequestEvent) => {
387
- if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
388
- AlertDialog.show({
389
- title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
390
- message: this.getPermissionDialogMessage(event),
391
- alignment: DialogAlignment.Center,
392
- primaryButton: {
393
- value: $r('app.string.deny'),
394
- action: () => {
395
- event.request.deny();
396
- }
397
- },
398
- secondaryButton: {
399
- value: $r('app.string.on_confirm'),
400
- action: () => {
401
- event.request.grant(event.request.getAccessibleResource());
402
- }
403
- },
404
- cancel: () => {
405
- event.request.deny();
385
+ if ( deviceInfo.sdkApiVersion >= 20) {
386
+ Web({ src: "", controller: this.controller, renderMode: this.renderMode })
387
+ .mixedMode(this.mode)
388
+ .onPermissionRequest((event: OnPermissionRequestEvent) => {
389
+ if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
390
+ AlertDialog.show({
391
+ title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
392
+ message: this.getPermissionDialogMessage(event),
393
+ alignment: DialogAlignment.Center,
394
+ primaryButton: {
395
+ value: $r('app.string.deny'),
396
+ action: () => {
397
+ event.request.deny();
398
+ }
399
+ },
400
+ secondaryButton: {
401
+ value: $r('app.string.on_confirm'),
402
+ action: () => {
403
+ event.request.grant(event.request.getAccessibleResource());
404
+ }
405
+ },
406
+ cancel: () => {
407
+ event.request.deny();
408
+ }
409
+ })
410
+ }
411
+ })
412
+ .width(this.webviewWidth)
413
+ .height(this.webviewHeight)
414
+ .fileAccess(this.allowFileAccess)
415
+ .constraintSize({ minHeight: MINHEIGHT })
416
+ .overScrollMode(this.overScrollMode)
417
+ .javaScriptAccess(this.javaScriptEnable)
418
+ .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
419
+ .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
420
+ .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
421
+ .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
422
+ .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
423
+ .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
424
+ this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
425
+ .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
426
+ .forceDarkAccess(this.forceDark)
427
+ .cacheMode(this.cacheMode)
428
+ .minFontSize(this.minFontSize)
429
+ .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
430
+ .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
431
+ .overScrollMode(this.overScrollMode)
432
+ .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
433
+ .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
434
+ .nestedScroll({
435
+ scrollForward: this.nestedScroll,
436
+ scrollBackward: this.nestedScroll,
437
+ })
438
+ .onLoadStarted(() => this.onPageBegin())
439
+ .onLoadFinished(() => this.onPageEnd())
440
+ .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
441
+ .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
442
+ .onControllerAttached(() => this.controllerAttachedInit())
443
+ .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
444
+ .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
445
+ .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
446
+ .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
447
+ .onGeolocationShow((event) => {
448
+ if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
449
+ event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
450
+ }
451
+ })
452
+ .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
453
+ .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
454
+ .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
455
+ .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
456
+ } else {
457
+ Web({ src: "", controller: this.controller, renderMode: this.renderMode })
458
+ .mixedMode(this.mode)
459
+ .onPermissionRequest((event: OnPermissionRequestEvent) => {
460
+ if (event && (this.getPermissionDialogMessage(event) != "TYPE_SENSOR")) {
461
+ AlertDialog.show({
462
+ title: this.resourceToString($r('app.string.on_confirm')) + event.request.getOrigin(),
463
+ message: this.getPermissionDialogMessage(event),
464
+ alignment: DialogAlignment.Center,
465
+ primaryButton: {
466
+ value: $r('app.string.deny'),
467
+ action: () => {
468
+ event.request.deny();
469
+ }
470
+ },
471
+ secondaryButton: {
472
+ value: $r('app.string.on_confirm'),
473
+ action: () => {
474
+ event.request.grant(event.request.getAccessibleResource());
475
+ }
476
+ },
477
+ cancel: () => {
478
+ event.request.deny();
479
+ }
480
+ })
406
481
  }
407
482
  })
408
- }
409
- })
410
483
 
411
- .width(this.webviewWidth)
412
- .height(this.webviewHeight)
413
- .fileAccess(this.allowFileAccess)
414
- .constraintSize({ minHeight: MINHEIGHT })
415
- .overScrollMode(this.overScrollMode)
416
- .javaScriptAccess(this.javaScriptEnable)
417
- .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
418
- .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
419
- .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
420
- .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
421
- .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
422
- .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
423
- this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
424
- .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
425
- .forceDarkAccess(this.forceDark)
426
- .cacheMode(this.cacheMode)
427
- .minFontSize(this.minFontSize)
428
- .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
429
- .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
430
- .overScrollMode(this.overScrollMode)
431
- .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
432
- .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
433
- .nestedScroll({
434
- scrollForward: this.nestedScroll,
435
- scrollBackward: this.nestedScroll,
436
- })
437
- .onPageBegin(() => this.onPageBegin())
438
- .onPageEnd(() => this.onPageEnd())
439
- .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
440
- .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
441
- .onControllerAttached(() => this.controllerAttachedInit())
442
- .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
443
- .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
444
- .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
445
- .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
446
- .onGeolocationShow((event) => {
447
- if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
448
- event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
484
+ .width(this.webviewWidth)
485
+ .height(this.webviewHeight)
486
+ .fileAccess(this.allowFileAccess)
487
+ .constraintSize({ minHeight: MINHEIGHT })
488
+ .overScrollMode(this.overScrollMode)
489
+ .javaScriptAccess(this.javaScriptEnable)
490
+ .javaScriptOnDocumentStart(this.injectedJavaScriptBeforeContentLoaded)
491
+ .horizontalScrollBarAccess(this.descriptorWrapper.rawProps.showsHorizontalScrollIndicator)
492
+ .verticalScrollBarAccess(this.descriptorWrapper.rawProps.showsVerticalScrollIndicator)
493
+ .overviewModeAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
494
+ .textZoomRatio(this.descriptorWrapper.rawProps.textZoom)
495
+ .backgroundColor(BaseOperate.getColorMode(this.ctx.uiAbilityContext,
496
+ this.descriptorWrapper.rawProps.forceDarkOn) === WebDarkMode.On ? Color.White : Color.Transparent)
497
+ .darkMode(BaseOperate.getColorMode(this.ctx.uiAbilityContext, this.descriptorWrapper.rawProps.forceDarkOn))
498
+ .forceDarkAccess(this.forceDark)
499
+ .cacheMode(this.cacheMode)
500
+ .minFontSize(this.minFontSize)
501
+ .domStorageAccess(this.descriptorWrapper.rawProps.domStorageEnabled)
502
+ .zoomAccess(this.descriptorWrapper.rawProps.scalesPageToFit)
503
+ .overScrollMode(this.overScrollMode)
504
+ .onProgressChange((event: OnProgressChangeEvent) => this.onProgressChange(event))
505
+ .onScroll((event: OnScrollEvent) => this.webViewBaseOperate?.emitScroll(event))
506
+ .nestedScroll({
507
+ scrollForward: this.nestedScroll,
508
+ scrollBackward: this.nestedScroll,
509
+ })
510
+ .onPageBegin(() => this.onPageBegin())
511
+ .onPageEnd(() => this.onPageEnd())
512
+ .onErrorReceive((event: OnErrorReceiveEvent) => this.webViewBaseOperate?.emitLoadingError(event))
513
+ .onHttpErrorReceive((event: OnHttpErrorReceiveEvent) => this.webViewBaseOperate?.emitHttpError(event))
514
+ .onControllerAttached(() => this.controllerAttachedInit())
515
+ .onAlert((event: AlertEvent) => this.onJavascriptAlert(event))
516
+ .onConfirm((event: AlertEvent) => this.onJavascriptConfirm(event))
517
+ .onDownloadStart((event: OnDownloadStartEvent) => this.webViewBaseOperate?.onDownloadStart(event))
518
+ .geolocationAccess(this.descriptorWrapper.rawProps.geolocationEnabled)
519
+ .onGeolocationShow((event) => {
520
+ if (event && (this.descriptorWrapper.rawProps.geolocationEnabled != undefined)) {
521
+ event.geolocation.invoke(event.origin, this.descriptorWrapper.rawProps.geolocationEnabled, true);
522
+ }
523
+ })
524
+ .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
525
+ .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
526
+ .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
527
+ .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
528
+
449
529
  }
450
- })
451
- .mediaPlayGestureAccess(this.descriptorWrapper.rawProps.mediaPlaybackRequiresUserAction)
452
- .onRenderExited((event: OnRenderExitedEvent) => this.webViewBaseOperate?.onRenderExited(event))
453
- .onLoadIntercept((event: OnLoadInterceptEvent) => this.onLoadIntercept(event))
454
- .onTitleReceive((event: OnTitleReceiveEvent) => this.webViewBaseOperate?.onTitleReceive(event))
455
- }
530
+ }
456
531
  .width(this.webviewWidth)
457
532
  .height(this.webviewHeight)
458
533
  .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.15.1-rc.3",
12
+ "version": "13.15.1-rc.4",
13
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",