@react-native-ohos/react-native-webview 13.16.2-beta.2 → 13.16.2
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.
- package/CHANGELOG.md +128 -0
- package/LICENSE +20 -20
- package/README.OpenSource +10 -10
- package/README.md +469 -13
- package/harmony/rn_webview/.gitignore +6 -0
- package/harmony/rn_webview/BuildProfile.ets +17 -0
- package/harmony/rn_webview/OAT.xml +44 -44
- package/harmony/rn_webview/build-profile.json5 +28 -28
- package/harmony/rn_webview/index.ets +12 -12
- package/harmony/rn_webview/oh-package-lock.json5 +29 -0
- package/harmony/rn_webview/oh-package.json5 +13 -13
- package/harmony/rn_webview/src/main/cpp/CMakeLists.txt +9 -9
- package/harmony/rn_webview/src/main/cpp/WebViewPackage.h +16 -16
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/BaseReactNativeWebviewPackage.h +96 -96
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/components/RNCWebViewJSIBinder.h +121 -120
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.cpp +18 -18
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebView.h +16 -16
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.cpp +17 -17
- package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/turbo_modules/RNCWebViewModule.h +16 -16
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ComponentDescriptors.h +24 -24
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.cpp +258 -258
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/EventEmitters.h +277 -277
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.cpp +104 -103
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/Props.h +510 -509
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.cpp +17 -17
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/ShadowNodes.h +32 -32
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.cpp +16 -16
- package/harmony/rn_webview/src/main/cpp/generated/react/renderer/components/react_native_webview/States.h +28 -28
- package/harmony/rn_webview/src/main/ets/Logger.ts +43 -43
- package/harmony/rn_webview/src/main/ets/Magic.ets +201 -198
- package/harmony/rn_webview/src/main/ets/RNCWebView.ets +1019 -818
- package/harmony/rn_webview/src/main/ets/RNCWebViewPackage.ets +37 -37
- package/harmony/rn_webview/src/main/ets/WebViewBaseOperate.ets +528 -514
- package/harmony/rn_webview/src/main/ets/WebViewTurboModule.ets +67 -63
- package/harmony/rn_webview/src/main/ets/generated/components/RNCWebView.ts +529 -525
- package/harmony/rn_webview/src/main/ets/generated/components/ts.ts +5 -5
- package/harmony/rn_webview/src/main/ets/generated/index.ets +5 -5
- package/harmony/rn_webview/src/main/ets/generated/ts.ts +6 -6
- package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebView.ts +18 -18
- package/harmony/rn_webview/src/main/ets/generated/turboModules/RNCWebViewModule.ts +16 -16
- package/harmony/rn_webview/src/main/ets/generated/turboModules/ts.ts +6 -6
- package/harmony/rn_webview/src/main/module.json5 +10 -10
- package/harmony/rn_webview/src/main/resources/base/element/string.json +39 -39
- package/harmony/rn_webview/src/main/resources/en_US/element/string.json +39 -39
- package/harmony/rn_webview/src/main/resources/zh_CN/element/string.json +39 -39
- package/harmony/rn_webview/src/test/List.test.ets +4 -4
- package/harmony/rn_webview/src/test/LocalUnit.test.ets +32 -32
- package/harmony/rn_webview/ts.ets +8 -8
- package/harmony/rn_webview.har +0 -0
- package/lib/NativeRNCWebView.d.ts +10 -0
- package/lib/NativeRNCWebView.d.ts.map +1 -0
- package/lib/NativeRNCWebView.js +1 -0
- package/lib/NativeRNCWebViewModule.d.ts +9 -0
- package/lib/NativeRNCWebViewModule.d.ts.map +1 -0
- package/lib/NativeRNCWebViewModule.js +1 -0
- package/lib/RNCWebViewNativeComponent.d.ts +250 -0
- package/lib/RNCWebViewNativeComponent.d.ts.map +1 -0
- package/lib/RNCWebViewNativeComponent.js +1 -0
- package/lib/WebView.d.ts +4 -0
- package/lib/WebView.d.ts.map +1 -0
- package/lib/WebView.harmony.d.ts +16 -0
- package/lib/WebView.harmony.d.ts.map +1 -0
- package/lib/WebView.harmony.js +1 -0
- package/lib/WebView.js +1 -0
- package/lib/codegenUtils.d.ts +3 -0
- package/lib/codegenUtils.d.ts.map +1 -0
- package/lib/codegenUtils.js +0 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -0
- package/package.json +101 -101
- package/src/NativeRNCWebView.ts +21 -21
- package/src/NativeRNCWebViewModule.ts +19 -19
- package/src/RNCWebViewNativeComponent.ts +356 -355
- package/src/WebView.harmony.tsx +348 -346
- package/src/WebView.tsx +10 -10
- package/src/codegenUtils.ts +10 -10
- package/src/index.ts +10 -10
- package/harmony/rn_webview/src/main/ets/CutomReference.ts +0 -30
- package/harmony/rn_webview/src/main/ets/ShouldRequestUrl.ts +0 -48
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
{
|
|
2
|
-
"apiType": "stageMode",
|
|
3
|
-
"buildOption": {
|
|
4
|
-
},
|
|
5
|
-
"buildOptionSet": [
|
|
6
|
-
{
|
|
7
|
-
"name": "release",
|
|
8
|
-
"arkOptions": {
|
|
9
|
-
"obfuscation": {
|
|
10
|
-
"ruleOptions": {
|
|
11
|
-
"enable": true,
|
|
12
|
-
"files": [
|
|
13
|
-
"./obfuscation-rules.txt"
|
|
14
|
-
]
|
|
15
|
-
},
|
|
16
|
-
"consumerFiles": [
|
|
17
|
-
"./consumer-rules.txt"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
"targets": [
|
|
24
|
-
{
|
|
25
|
-
"name": "default"
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"apiType": "stageMode",
|
|
3
|
+
"buildOption": {
|
|
4
|
+
},
|
|
5
|
+
"buildOptionSet": [
|
|
6
|
+
{
|
|
7
|
+
"name": "release",
|
|
8
|
+
"arkOptions": {
|
|
9
|
+
"obfuscation": {
|
|
10
|
+
"ruleOptions": {
|
|
11
|
+
"enable": true,
|
|
12
|
+
"files": [
|
|
13
|
+
"./obfuscation-rules.txt"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"consumerFiles": [
|
|
17
|
+
"./consumer-rules.txt"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
"targets": [
|
|
24
|
+
{
|
|
25
|
+
"name": "default"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
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 {RNCWebView as WebView} from './src/main/ets/RNCWebView'
|
|
6
|
-
import {RNCWebViewPackage as WebViewPackage} from './src/main/ets/RNCWebViewPackage'
|
|
7
|
-
|
|
8
|
-
export {WebViewPackage};
|
|
9
|
-
export { WebView }
|
|
10
|
-
|
|
11
|
-
export * from './src/main/ets/RNCWebView'
|
|
12
|
-
|
|
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 {RNCWebView as WebView} from './src/main/ets/RNCWebView'
|
|
6
|
+
import {RNCWebViewPackage as WebViewPackage} from './src/main/ets/RNCWebViewPackage'
|
|
7
|
+
|
|
8
|
+
export {WebViewPackage};
|
|
9
|
+
export { WebView }
|
|
10
|
+
|
|
11
|
+
export * from './src/main/ets/RNCWebView'
|
|
12
|
+
|
|
13
13
|
export * from './ts'
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"stableOrder": true
|
|
4
|
+
},
|
|
5
|
+
"lockfileVersion": 3,
|
|
6
|
+
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
|
7
|
+
"specifiers": {
|
|
8
|
+
"@ppd/ffrt@1.1.5": "@ppd/ffrt@1.1.5",
|
|
9
|
+
"@rnoh/react-native-openharmony@../../example/node_modules/@react-native-oh/react-native-harmony/react_native_openharmony.har": "@rnoh/react-native-openharmony@../../example/node_modules/@react-native-oh/react-native-harmony/react_native_openharmony.har"
|
|
10
|
+
},
|
|
11
|
+
"packages": {
|
|
12
|
+
"@ppd/ffrt@1.1.5": {
|
|
13
|
+
"name": "@ppd/ffrt",
|
|
14
|
+
"version": "1.1.5",
|
|
15
|
+
"integrity": "sha512-MbXdRqeNHQQv4ALTGdosvOCQI+xH8nt0+E2/aFLS4UuGJ5541MAeenRCDOrgIG05k7SnSJ4WngsCfjj3FbTCQg==",
|
|
16
|
+
"resolved": "https://ohpm.openharmony.cn/ohpm/@ppd/ffrt/-/ffrt-1.1.5.har",
|
|
17
|
+
"registryType": "ohpm"
|
|
18
|
+
},
|
|
19
|
+
"@rnoh/react-native-openharmony@../../example/node_modules/@react-native-oh/react-native-harmony/react_native_openharmony.har": {
|
|
20
|
+
"name": "@rnoh/react-native-openharmony",
|
|
21
|
+
"version": "0.82.30",
|
|
22
|
+
"resolved": "../../example/node_modules/@react-native-oh/react-native-harmony/react_native_openharmony.har",
|
|
23
|
+
"registryType": "local",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@ppd/ffrt": "1.1.5"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
{
|
|
2
|
-
"license": "Apache-2.0",
|
|
3
|
-
"devDependencies": {
|
|
4
|
-
},
|
|
5
|
-
"author": "",
|
|
6
|
-
"name": "@react-native-ohos/react-native-webview",
|
|
7
|
-
"description": "main cpai architecture",
|
|
8
|
-
"main": "index.ets",
|
|
9
|
-
"version": "13.16.2
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@rnoh/react-native-openharmony": "../react_native_openharmony.har"
|
|
12
|
-
}
|
|
13
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"license": "Apache-2.0",
|
|
3
|
+
"devDependencies": {
|
|
4
|
+
},
|
|
5
|
+
"author": "",
|
|
6
|
+
"name": "@react-native-ohos/react-native-webview",
|
|
7
|
+
"description": "main cpai architecture",
|
|
8
|
+
"main": "index.ets",
|
|
9
|
+
"version": "13.16.2",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@rnoh/react-native-openharmony": "../react_native_openharmony.har"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
cmake_minimum_required(VERSION 3.13)
|
|
2
|
-
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
3
|
-
|
|
4
|
-
set(rnoh_webview_generated_dir "${CMAKE_CURRENT_SOURCE_DIR}/generated")
|
|
5
|
-
file(GLOB_RECURSE rnoh_webview_generated_SRC "${rnoh_webview_generated_dir}/**/*.cpp")
|
|
6
|
-
file(GLOB rnoh_webview_SRC CONFIGURE_DEPENDS *.cpp)
|
|
7
|
-
add_library(rnoh_webview SHARED ${rnoh_webview_SRC} ${rnoh_webview_generated_SRC})
|
|
8
|
-
target_include_directories(rnoh_webview PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${rnoh_webview_generated_dir})
|
|
9
|
-
target_link_libraries(rnoh_webview PUBLIC rnoh)
|
|
1
|
+
cmake_minimum_required(VERSION 3.13)
|
|
2
|
+
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
3
|
+
|
|
4
|
+
set(rnoh_webview_generated_dir "${CMAKE_CURRENT_SOURCE_DIR}/generated")
|
|
5
|
+
file(GLOB_RECURSE rnoh_webview_generated_SRC "${rnoh_webview_generated_dir}/**/*.cpp")
|
|
6
|
+
file(GLOB rnoh_webview_SRC CONFIGURE_DEPENDS *.cpp)
|
|
7
|
+
add_library(rnoh_webview SHARED ${rnoh_webview_SRC} ${rnoh_webview_generated_SRC})
|
|
8
|
+
target_include_directories(rnoh_webview PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${rnoh_webview_generated_dir})
|
|
9
|
+
target_link_libraries(rnoh_webview PUBLIC rnoh)
|
|
@@ -1,17 +1,17 @@
|
|
|
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
|
-
#ifndef WEBVIEWPACKAGE_H
|
|
6
|
-
#define WEBVIEWPACKAGE_H
|
|
7
|
-
|
|
8
|
-
#include "generated/RNOH/generated/BaseReactNativeWebviewPackage.h"
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
namespace rnoh {
|
|
12
|
-
class WebViewPackage : public BaseReactNativeWebviewPackage {
|
|
13
|
-
using Super = BaseReactNativeWebviewPackage;
|
|
14
|
-
using Super::Super;
|
|
15
|
-
};
|
|
16
|
-
} // namespace rnoh
|
|
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
|
+
#ifndef WEBVIEWPACKAGE_H
|
|
6
|
+
#define WEBVIEWPACKAGE_H
|
|
7
|
+
|
|
8
|
+
#include "generated/RNOH/generated/BaseReactNativeWebviewPackage.h"
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
namespace rnoh {
|
|
12
|
+
class WebViewPackage : public BaseReactNativeWebviewPackage {
|
|
13
|
+
using Super = BaseReactNativeWebviewPackage;
|
|
14
|
+
using Super::Super;
|
|
15
|
+
};
|
|
16
|
+
} // namespace rnoh
|
|
17
17
|
#endif //SENSORPACKAGE_H
|
package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/BaseReactNativeWebviewPackage.h
CHANGED
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This code was generated by "react-native codegen-lib-harmony"
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <react/renderer/components/react_native_webview/ComponentDescriptors.h>
|
|
8
|
-
#include "RNOH/Package.h"
|
|
9
|
-
#include "RNOH/ArkTSTurboModule.h"
|
|
10
|
-
#include "RNOH/generated/turbo_modules/RNCWebView.h"
|
|
11
|
-
#include "RNOH/generated/turbo_modules/RNCWebViewModule.h"
|
|
12
|
-
#include "RNOH/generated/components/RNCWebViewJSIBinder.h"
|
|
13
|
-
|
|
14
|
-
namespace rnoh {
|
|
15
|
-
|
|
16
|
-
class BaseReactNativeWebviewPackageTurboModuleFactoryDelegate : public TurboModuleFactoryDelegate {
|
|
17
|
-
public:
|
|
18
|
-
SharedTurboModule createTurboModule(Context ctx, const std::string &name) const override {
|
|
19
|
-
if (name == "RNCWebView") {
|
|
20
|
-
return std::make_shared<RNCWebView>(ctx, name);
|
|
21
|
-
}
|
|
22
|
-
if (name == "RNCWebViewModule") {
|
|
23
|
-
return std::make_shared<RNCWebViewModule>(ctx, name);
|
|
24
|
-
}
|
|
25
|
-
return nullptr;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
class BaseReactNativeWebviewPackageEventEmitRequestHandler : public EventEmitRequestHandler {
|
|
30
|
-
public:
|
|
31
|
-
void handleEvent(Context const &ctx) override {
|
|
32
|
-
auto eventEmitter = ctx.shadowViewRegistry->getEventEmitter<facebook::react::EventEmitter>(ctx.tag);
|
|
33
|
-
auto componentName = ctx.shadowViewRegistry->getComponentName(ctx.tag);
|
|
34
|
-
|
|
35
|
-
if (eventEmitter == nullptr) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
std::vector<std::string> supportedComponentNames = {
|
|
40
|
-
"RNCWebView",
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
std::vector<std::string> supportedEventNames = {
|
|
44
|
-
"contentSizeChange",
|
|
45
|
-
"renderProcessGone",
|
|
46
|
-
"contentProcessDidTerminate",
|
|
47
|
-
"customMenuSelection",
|
|
48
|
-
"fileDownload",
|
|
49
|
-
"loadingError",
|
|
50
|
-
"loadingSubResourceError",
|
|
51
|
-
"loadingFinish",
|
|
52
|
-
"loadingProgress",
|
|
53
|
-
"loadingStart",
|
|
54
|
-
"httpError",
|
|
55
|
-
"message",
|
|
56
|
-
"openWindow",
|
|
57
|
-
"scroll",
|
|
58
|
-
"shouldStartLoadWithRequest",
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
if (std::find(supportedComponentNames.begin(), supportedComponentNames.end(), componentName) != supportedComponentNames.end() &&
|
|
62
|
-
std::find(supportedEventNames.begin(), supportedEventNames.end(), ctx.eventName) != supportedEventNames.end()) {
|
|
63
|
-
eventEmitter->dispatchEvent(ctx.eventName, ArkJS(ctx.env).getDynamic(ctx.payload));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
class BaseReactNativeWebviewPackage : public Package {
|
|
70
|
-
public:
|
|
71
|
-
BaseReactNativeWebviewPackage(Package::Context ctx) : Package(ctx){};
|
|
72
|
-
|
|
73
|
-
std::unique_ptr<TurboModuleFactoryDelegate> createTurboModuleFactoryDelegate() override {
|
|
74
|
-
return std::make_unique<BaseReactNativeWebviewPackageTurboModuleFactoryDelegate>();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
std::vector<facebook::react::ComponentDescriptorProvider> createComponentDescriptorProviders() override {
|
|
78
|
-
return {
|
|
79
|
-
facebook::react::concreteComponentDescriptorProvider<facebook::react::RNCWebViewComponentDescriptor>(),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
ComponentJSIBinderByString createComponentJSIBinderByName() override {
|
|
84
|
-
return {
|
|
85
|
-
{"RNCWebView", std::make_shared<RNCWebViewJSIBinder>()},
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
EventEmitRequestHandlers createEventEmitRequestHandlers() override {
|
|
90
|
-
return {
|
|
91
|
-
std::make_shared<BaseReactNativeWebviewPackageEventEmitRequestHandler>(),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
} // namespace rnoh
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by "react-native codegen-lib-harmony"
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include <react/renderer/components/react_native_webview/ComponentDescriptors.h>
|
|
8
|
+
#include "RNOH/Package.h"
|
|
9
|
+
#include "RNOH/ArkTSTurboModule.h"
|
|
10
|
+
#include "RNOH/generated/turbo_modules/RNCWebView.h"
|
|
11
|
+
#include "RNOH/generated/turbo_modules/RNCWebViewModule.h"
|
|
12
|
+
#include "RNOH/generated/components/RNCWebViewJSIBinder.h"
|
|
13
|
+
|
|
14
|
+
namespace rnoh {
|
|
15
|
+
|
|
16
|
+
class BaseReactNativeWebviewPackageTurboModuleFactoryDelegate : public TurboModuleFactoryDelegate {
|
|
17
|
+
public:
|
|
18
|
+
SharedTurboModule createTurboModule(Context ctx, const std::string &name) const override {
|
|
19
|
+
if (name == "RNCWebView") {
|
|
20
|
+
return std::make_shared<RNCWebView>(ctx, name);
|
|
21
|
+
}
|
|
22
|
+
if (name == "RNCWebViewModule") {
|
|
23
|
+
return std::make_shared<RNCWebViewModule>(ctx, name);
|
|
24
|
+
}
|
|
25
|
+
return nullptr;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
class BaseReactNativeWebviewPackageEventEmitRequestHandler : public EventEmitRequestHandler {
|
|
30
|
+
public:
|
|
31
|
+
void handleEvent(Context const &ctx) override {
|
|
32
|
+
auto eventEmitter = ctx.shadowViewRegistry->getEventEmitter<facebook::react::EventEmitter>(ctx.tag);
|
|
33
|
+
auto componentName = ctx.shadowViewRegistry->getComponentName(ctx.tag);
|
|
34
|
+
|
|
35
|
+
if (eventEmitter == nullptr) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
std::vector<std::string> supportedComponentNames = {
|
|
40
|
+
"RNCWebView",
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
std::vector<std::string> supportedEventNames = {
|
|
44
|
+
"contentSizeChange",
|
|
45
|
+
"renderProcessGone",
|
|
46
|
+
"contentProcessDidTerminate",
|
|
47
|
+
"customMenuSelection",
|
|
48
|
+
"fileDownload",
|
|
49
|
+
"loadingError",
|
|
50
|
+
"loadingSubResourceError",
|
|
51
|
+
"loadingFinish",
|
|
52
|
+
"loadingProgress",
|
|
53
|
+
"loadingStart",
|
|
54
|
+
"httpError",
|
|
55
|
+
"message",
|
|
56
|
+
"openWindow",
|
|
57
|
+
"scroll",
|
|
58
|
+
"shouldStartLoadWithRequest",
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
if (std::find(supportedComponentNames.begin(), supportedComponentNames.end(), componentName) != supportedComponentNames.end() &&
|
|
62
|
+
std::find(supportedEventNames.begin(), supportedEventNames.end(), ctx.eventName) != supportedEventNames.end()) {
|
|
63
|
+
eventEmitter->dispatchEvent(ctx.eventName, ArkJS(ctx.env).getDynamic(ctx.payload));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class BaseReactNativeWebviewPackage : public Package {
|
|
70
|
+
public:
|
|
71
|
+
BaseReactNativeWebviewPackage(Package::Context ctx) : Package(ctx){};
|
|
72
|
+
|
|
73
|
+
std::unique_ptr<TurboModuleFactoryDelegate> createTurboModuleFactoryDelegate() override {
|
|
74
|
+
return std::make_unique<BaseReactNativeWebviewPackageTurboModuleFactoryDelegate>();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
std::vector<facebook::react::ComponentDescriptorProvider> createComponentDescriptorProviders() override {
|
|
78
|
+
return {
|
|
79
|
+
facebook::react::concreteComponentDescriptorProvider<facebook::react::RNCWebViewComponentDescriptor>(),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
ComponentJSIBinderByString createComponentJSIBinderByName() override {
|
|
84
|
+
return {
|
|
85
|
+
{"RNCWebView", std::make_shared<RNCWebViewJSIBinder>()},
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
EventEmitRequestHandlers createEventEmitRequestHandlers() override {
|
|
90
|
+
return {
|
|
91
|
+
std::make_shared<BaseReactNativeWebviewPackageEventEmitRequestHandler>(),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
} // namespace rnoh
|
package/harmony/rn_webview/src/main/cpp/generated/RNOH/generated/components/RNCWebViewJSIBinder.h
CHANGED
|
@@ -1,120 +1,121 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This code was generated by "react-native codegen-lib-harmony"
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
#include "RNOHCorePackage/ComponentBinders/ViewComponentJSIBinder.h"
|
|
7
|
-
|
|
8
|
-
namespace rnoh {
|
|
9
|
-
class RNCWebViewJSIBinder : public ViewComponentJSIBinder {
|
|
10
|
-
protected:
|
|
11
|
-
facebook::jsi::Object createNativeProps(facebook::jsi::Runtime &rt) override {
|
|
12
|
-
auto object = ViewComponentJSIBinder::createNativeProps(rt);
|
|
13
|
-
object.setProperty(rt, "allowFileAccess", true);
|
|
14
|
-
object.setProperty(rt, "allowsProtectedMedia", true);
|
|
15
|
-
object.setProperty(rt, "allowsFullscreenVideo", true);
|
|
16
|
-
object.setProperty(rt, "androidLayerType", true);
|
|
17
|
-
object.setProperty(rt, "cacheMode", true);
|
|
18
|
-
object.setProperty(rt, "domStorageEnabled", true);
|
|
19
|
-
object.setProperty(rt, "downloadingMessage", true);
|
|
20
|
-
object.setProperty(rt, "forceDarkOn", true);
|
|
21
|
-
object.setProperty(rt, "geolocationEnabled", true);
|
|
22
|
-
object.setProperty(rt, "lackPermissionToDownloadMessage", true);
|
|
23
|
-
object.setProperty(rt, "messagingModuleName", true);
|
|
24
|
-
object.setProperty(rt, "minimumFontSize", true);
|
|
25
|
-
object.setProperty(rt, "mixedContentMode", true);
|
|
26
|
-
object.setProperty(rt, "nestedScrollEnabled", true);
|
|
27
|
-
object.setProperty(rt, "overScrollMode", true);
|
|
28
|
-
object.setProperty(rt, "saveFormDataDisabled", true);
|
|
29
|
-
object.setProperty(rt, "scalesPageToFit", true);
|
|
30
|
-
object.setProperty(rt, "setBuiltInZoomControls", true);
|
|
31
|
-
object.setProperty(rt, "setDisplayZoomControls", true);
|
|
32
|
-
object.setProperty(rt, "setSupportMultipleWindows", true);
|
|
33
|
-
object.setProperty(rt, "textZoom", true);
|
|
34
|
-
object.setProperty(rt, "thirdPartyCookiesEnabled", true);
|
|
35
|
-
object.setProperty(rt, "hasOnScroll", true);
|
|
36
|
-
object.setProperty(rt, "injectedJavaScriptObject", true);
|
|
37
|
-
object.setProperty(rt, "paymentRequestEnabled", true);
|
|
38
|
-
object.setProperty(rt, "allowingReadAccessToURL", true);
|
|
39
|
-
object.setProperty(rt, "allowsBackForwardNavigationGestures", true);
|
|
40
|
-
object.setProperty(rt, "allowsInlineMediaPlayback", true);
|
|
41
|
-
object.setProperty(rt, "allowsPictureInPictureMediaPlayback", true);
|
|
42
|
-
object.setProperty(rt, "allowsAirPlayForMediaPlayback", true);
|
|
43
|
-
object.setProperty(rt, "allowsLinkPreview", true);
|
|
44
|
-
object.setProperty(rt, "automaticallyAdjustContentInsets", true);
|
|
45
|
-
object.setProperty(rt, "ignoreSilentHardwareSwitch", true);
|
|
46
|
-
object.setProperty(rt, "autoManageStatusBarEnabled", true);
|
|
47
|
-
object.setProperty(rt, "bounces", true);
|
|
48
|
-
object.setProperty(rt, "contentInset", "Object");
|
|
49
|
-
object.setProperty(rt, "contentInsetAdjustmentBehavior", true);
|
|
50
|
-
object.setProperty(rt, "contentMode", true);
|
|
51
|
-
object.setProperty(rt, "dataDetectorTypes", true);
|
|
52
|
-
object.setProperty(rt, "decelerationRate", true);
|
|
53
|
-
object.setProperty(rt, "directionalLockEnabled", true);
|
|
54
|
-
object.setProperty(rt, "enableApplePay", true);
|
|
55
|
-
object.setProperty(rt, "hideKeyboardAccessoryView", true);
|
|
56
|
-
object.setProperty(rt, "keyboardDisplayRequiresUserAction", true);
|
|
57
|
-
object.setProperty(rt, "limitsNavigationsToAppBoundDomains", true);
|
|
58
|
-
object.setProperty(rt, "mediaCapturePermissionGrantType", true);
|
|
59
|
-
object.setProperty(rt, "pagingEnabled", true);
|
|
60
|
-
object.setProperty(rt, "pullToRefreshEnabled", true);
|
|
61
|
-
object.setProperty(rt, "refreshControlLightMode", true);
|
|
62
|
-
object.setProperty(rt, "scrollEnabled", true);
|
|
63
|
-
object.setProperty(rt, "sharedCookiesEnabled", true);
|
|
64
|
-
object.setProperty(rt, "textInteractionEnabled", true);
|
|
65
|
-
object.setProperty(rt, "useSharedProcessPool", true);
|
|
66
|
-
object.setProperty(rt, "menuItems", true);
|
|
67
|
-
object.setProperty(rt, "suppressMenuItems", true);
|
|
68
|
-
object.setProperty(rt, "hasOnFileDownload", true);
|
|
69
|
-
object.setProperty(rt, "fraudulentWebsiteWarningEnabled", true);
|
|
70
|
-
object.setProperty(rt, "allowFileAccessFromFileURLs", true);
|
|
71
|
-
object.setProperty(rt, "allowUniversalAccessFromFileURLs", true);
|
|
72
|
-
object.setProperty(rt, "applicationNameForUserAgent", true);
|
|
73
|
-
object.setProperty(rt, "basicAuthCredential", "Object");
|
|
74
|
-
object.setProperty(rt, "cacheEnabled", true);
|
|
75
|
-
object.setProperty(rt, "incognito", true);
|
|
76
|
-
object.setProperty(rt, "injectedJavaScript", true);
|
|
77
|
-
object.setProperty(rt, "injectedJavaScriptBeforeContentLoaded", true);
|
|
78
|
-
object.setProperty(rt, "injectedJavaScriptForMainFrameOnly", true);
|
|
79
|
-
object.setProperty(rt, "injectedJavaScriptBeforeContentLoadedForMainFrameOnly", true);
|
|
80
|
-
object.setProperty(rt, "javaScriptCanOpenWindowsAutomatically", true);
|
|
81
|
-
object.setProperty(rt, "javaScriptEnabled", true);
|
|
82
|
-
object.setProperty(rt, "webviewDebuggingEnabled", true);
|
|
83
|
-
object.setProperty(rt, "mediaPlaybackRequiresUserAction", true);
|
|
84
|
-
object.setProperty(rt, "messagingEnabled", true);
|
|
85
|
-
object.setProperty(rt, "shouldStartLoadWithRequestEnabled", true);
|
|
86
|
-
object.setProperty(rt, "hasOnOpenWindowEvent", true);
|
|
87
|
-
object.setProperty(rt, "showsHorizontalScrollIndicator", true);
|
|
88
|
-
object.setProperty(rt, "showsVerticalScrollIndicator", true);
|
|
89
|
-
object.setProperty(rt, "indicatorStyle", true);
|
|
90
|
-
object.setProperty(rt, "newSource", "Object");
|
|
91
|
-
object.setProperty(rt, "userAgent", true);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
events
|
|
103
|
-
events.setProperty(rt, "
|
|
104
|
-
events.setProperty(rt, "
|
|
105
|
-
events.setProperty(rt, "
|
|
106
|
-
events.setProperty(rt, "
|
|
107
|
-
events.setProperty(rt, "
|
|
108
|
-
events.setProperty(rt, "
|
|
109
|
-
events.setProperty(rt, "
|
|
110
|
-
events.setProperty(rt, "
|
|
111
|
-
events.setProperty(rt, "
|
|
112
|
-
events.setProperty(rt, "
|
|
113
|
-
events.setProperty(rt, "
|
|
114
|
-
events.setProperty(rt, "
|
|
115
|
-
events.setProperty(rt, "
|
|
116
|
-
events.setProperty(rt, "
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by "react-native codegen-lib-harmony"
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
#include "RNOHCorePackage/ComponentBinders/ViewComponentJSIBinder.h"
|
|
7
|
+
|
|
8
|
+
namespace rnoh {
|
|
9
|
+
class RNCWebViewJSIBinder : public ViewComponentJSIBinder {
|
|
10
|
+
protected:
|
|
11
|
+
facebook::jsi::Object createNativeProps(facebook::jsi::Runtime &rt) override {
|
|
12
|
+
auto object = ViewComponentJSIBinder::createNativeProps(rt);
|
|
13
|
+
object.setProperty(rt, "allowFileAccess", true);
|
|
14
|
+
object.setProperty(rt, "allowsProtectedMedia", true);
|
|
15
|
+
object.setProperty(rt, "allowsFullscreenVideo", true);
|
|
16
|
+
object.setProperty(rt, "androidLayerType", true);
|
|
17
|
+
object.setProperty(rt, "cacheMode", true);
|
|
18
|
+
object.setProperty(rt, "domStorageEnabled", true);
|
|
19
|
+
object.setProperty(rt, "downloadingMessage", true);
|
|
20
|
+
object.setProperty(rt, "forceDarkOn", true);
|
|
21
|
+
object.setProperty(rt, "geolocationEnabled", true);
|
|
22
|
+
object.setProperty(rt, "lackPermissionToDownloadMessage", true);
|
|
23
|
+
object.setProperty(rt, "messagingModuleName", true);
|
|
24
|
+
object.setProperty(rt, "minimumFontSize", true);
|
|
25
|
+
object.setProperty(rt, "mixedContentMode", true);
|
|
26
|
+
object.setProperty(rt, "nestedScrollEnabled", true);
|
|
27
|
+
object.setProperty(rt, "overScrollMode", true);
|
|
28
|
+
object.setProperty(rt, "saveFormDataDisabled", true);
|
|
29
|
+
object.setProperty(rt, "scalesPageToFit", true);
|
|
30
|
+
object.setProperty(rt, "setBuiltInZoomControls", true);
|
|
31
|
+
object.setProperty(rt, "setDisplayZoomControls", true);
|
|
32
|
+
object.setProperty(rt, "setSupportMultipleWindows", true);
|
|
33
|
+
object.setProperty(rt, "textZoom", true);
|
|
34
|
+
object.setProperty(rt, "thirdPartyCookiesEnabled", true);
|
|
35
|
+
object.setProperty(rt, "hasOnScroll", true);
|
|
36
|
+
object.setProperty(rt, "injectedJavaScriptObject", true);
|
|
37
|
+
object.setProperty(rt, "paymentRequestEnabled", true);
|
|
38
|
+
object.setProperty(rt, "allowingReadAccessToURL", true);
|
|
39
|
+
object.setProperty(rt, "allowsBackForwardNavigationGestures", true);
|
|
40
|
+
object.setProperty(rt, "allowsInlineMediaPlayback", true);
|
|
41
|
+
object.setProperty(rt, "allowsPictureInPictureMediaPlayback", true);
|
|
42
|
+
object.setProperty(rt, "allowsAirPlayForMediaPlayback", true);
|
|
43
|
+
object.setProperty(rt, "allowsLinkPreview", true);
|
|
44
|
+
object.setProperty(rt, "automaticallyAdjustContentInsets", true);
|
|
45
|
+
object.setProperty(rt, "ignoreSilentHardwareSwitch", true);
|
|
46
|
+
object.setProperty(rt, "autoManageStatusBarEnabled", true);
|
|
47
|
+
object.setProperty(rt, "bounces", true);
|
|
48
|
+
object.setProperty(rt, "contentInset", "Object");
|
|
49
|
+
object.setProperty(rt, "contentInsetAdjustmentBehavior", true);
|
|
50
|
+
object.setProperty(rt, "contentMode", true);
|
|
51
|
+
object.setProperty(rt, "dataDetectorTypes", true);
|
|
52
|
+
object.setProperty(rt, "decelerationRate", true);
|
|
53
|
+
object.setProperty(rt, "directionalLockEnabled", true);
|
|
54
|
+
object.setProperty(rt, "enableApplePay", true);
|
|
55
|
+
object.setProperty(rt, "hideKeyboardAccessoryView", true);
|
|
56
|
+
object.setProperty(rt, "keyboardDisplayRequiresUserAction", true);
|
|
57
|
+
object.setProperty(rt, "limitsNavigationsToAppBoundDomains", true);
|
|
58
|
+
object.setProperty(rt, "mediaCapturePermissionGrantType", true);
|
|
59
|
+
object.setProperty(rt, "pagingEnabled", true);
|
|
60
|
+
object.setProperty(rt, "pullToRefreshEnabled", true);
|
|
61
|
+
object.setProperty(rt, "refreshControlLightMode", true);
|
|
62
|
+
object.setProperty(rt, "scrollEnabled", true);
|
|
63
|
+
object.setProperty(rt, "sharedCookiesEnabled", true);
|
|
64
|
+
object.setProperty(rt, "textInteractionEnabled", true);
|
|
65
|
+
object.setProperty(rt, "useSharedProcessPool", true);
|
|
66
|
+
object.setProperty(rt, "menuItems", true);
|
|
67
|
+
object.setProperty(rt, "suppressMenuItems", true);
|
|
68
|
+
object.setProperty(rt, "hasOnFileDownload", true);
|
|
69
|
+
object.setProperty(rt, "fraudulentWebsiteWarningEnabled", true);
|
|
70
|
+
object.setProperty(rt, "allowFileAccessFromFileURLs", true);
|
|
71
|
+
object.setProperty(rt, "allowUniversalAccessFromFileURLs", true);
|
|
72
|
+
object.setProperty(rt, "applicationNameForUserAgent", true);
|
|
73
|
+
object.setProperty(rt, "basicAuthCredential", "Object");
|
|
74
|
+
object.setProperty(rt, "cacheEnabled", true);
|
|
75
|
+
object.setProperty(rt, "incognito", true);
|
|
76
|
+
object.setProperty(rt, "injectedJavaScript", true);
|
|
77
|
+
object.setProperty(rt, "injectedJavaScriptBeforeContentLoaded", true);
|
|
78
|
+
object.setProperty(rt, "injectedJavaScriptForMainFrameOnly", true);
|
|
79
|
+
object.setProperty(rt, "injectedJavaScriptBeforeContentLoadedForMainFrameOnly", true);
|
|
80
|
+
object.setProperty(rt, "javaScriptCanOpenWindowsAutomatically", true);
|
|
81
|
+
object.setProperty(rt, "javaScriptEnabled", true);
|
|
82
|
+
object.setProperty(rt, "webviewDebuggingEnabled", true);
|
|
83
|
+
object.setProperty(rt, "mediaPlaybackRequiresUserAction", true);
|
|
84
|
+
object.setProperty(rt, "messagingEnabled", true);
|
|
85
|
+
object.setProperty(rt, "shouldStartLoadWithRequestEnabled", true);
|
|
86
|
+
object.setProperty(rt, "hasOnOpenWindowEvent", true);
|
|
87
|
+
object.setProperty(rt, "showsHorizontalScrollIndicator", true);
|
|
88
|
+
object.setProperty(rt, "showsVerticalScrollIndicator", true);
|
|
89
|
+
object.setProperty(rt, "indicatorStyle", true);
|
|
90
|
+
object.setProperty(rt, "newSource", "Object");
|
|
91
|
+
object.setProperty(rt, "userAgent", true);
|
|
92
|
+
object.setProperty(rt, "renderMode", true);
|
|
93
|
+
return object;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
facebook::jsi::Object createBubblingEventTypes(facebook::jsi::Runtime &rt) override {
|
|
97
|
+
facebook::jsi::Object events(rt);
|
|
98
|
+
return events;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
facebook::jsi::Object createDirectEventTypes(facebook::jsi::Runtime &rt) override {
|
|
102
|
+
facebook::jsi::Object events(rt);
|
|
103
|
+
events.setProperty(rt, "topContentSizeChange", createDirectEvent(rt, "onContentSizeChange"));
|
|
104
|
+
events.setProperty(rt, "topRenderProcessGone", createDirectEvent(rt, "onRenderProcessGone"));
|
|
105
|
+
events.setProperty(rt, "topContentProcessDidTerminate", createDirectEvent(rt, "onContentProcessDidTerminate"));
|
|
106
|
+
events.setProperty(rt, "topCustomMenuSelection", createDirectEvent(rt, "onCustomMenuSelection"));
|
|
107
|
+
events.setProperty(rt, "topFileDownload", createDirectEvent(rt, "onFileDownload"));
|
|
108
|
+
events.setProperty(rt, "topLoadingError", createDirectEvent(rt, "onLoadingError"));
|
|
109
|
+
events.setProperty(rt, "topLoadingSubResourceError", createDirectEvent(rt, "onLoadingSubResourceError"));
|
|
110
|
+
events.setProperty(rt, "topLoadingFinish", createDirectEvent(rt, "onLoadingFinish"));
|
|
111
|
+
events.setProperty(rt, "topLoadingProgress", createDirectEvent(rt, "onLoadingProgress"));
|
|
112
|
+
events.setProperty(rt, "topLoadingStart", createDirectEvent(rt, "onLoadingStart"));
|
|
113
|
+
events.setProperty(rt, "topHttpError", createDirectEvent(rt, "onHttpError"));
|
|
114
|
+
events.setProperty(rt, "topMessage", createDirectEvent(rt, "onMessage"));
|
|
115
|
+
events.setProperty(rt, "topOpenWindow", createDirectEvent(rt, "onOpenWindow"));
|
|
116
|
+
events.setProperty(rt, "topScroll", createDirectEvent(rt, "onScroll"));
|
|
117
|
+
events.setProperty(rt, "topShouldStartLoadWithRequest", createDirectEvent(rt, "onShouldStartLoadWithRequest"));
|
|
118
|
+
return events;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
} // namespace rnoh
|