@javascriptcommon/react-native-webview 13.12.16

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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +82 -0
  3. package/android/build.gradle +110 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +15 -0
  6. package/android/src/main/AndroidManifestNew.xml +13 -0
  7. package/android/src/main/java/com/reactnativecommunity/webview/RNCBasicAuthCredential.java +11 -0
  8. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebChromeClient.java +372 -0
  9. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebView.java +450 -0
  10. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewClient.java +328 -0
  11. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewConfig.java +11 -0
  12. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewFileProvider.java +14 -0
  13. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManagerImpl.kt +720 -0
  14. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewMessagingModule.kt +19 -0
  15. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewModuleImpl.java +554 -0
  16. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewPackage.java +56 -0
  17. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewWrapper.kt +39 -0
  18. package/android/src/main/java/com/reactnativecommunity/webview/URLUtil.java +179 -0
  19. package/android/src/main/java/com/reactnativecommunity/webview/events/TopCustomMenuSelectionEvent.kt +24 -0
  20. package/android/src/main/java/com/reactnativecommunity/webview/events/TopHttpErrorEvent.kt +25 -0
  21. package/android/src/main/java/com/reactnativecommunity/webview/events/TopLoadingErrorEvent.kt +25 -0
  22. package/android/src/main/java/com/reactnativecommunity/webview/events/TopLoadingFinishEvent.kt +24 -0
  23. package/android/src/main/java/com/reactnativecommunity/webview/events/TopLoadingProgressEvent.kt +24 -0
  24. package/android/src/main/java/com/reactnativecommunity/webview/events/TopLoadingStartEvent.kt +25 -0
  25. package/android/src/main/java/com/reactnativecommunity/webview/events/TopMessageEvent.kt +24 -0
  26. package/android/src/main/java/com/reactnativecommunity/webview/events/TopNewWindowEvent.kt +25 -0
  27. package/android/src/main/java/com/reactnativecommunity/webview/events/TopRenderProcessGoneEvent.kt +26 -0
  28. package/android/src/main/java/com/reactnativecommunity/webview/events/TopShouldStartLoadWithRequestEvent.kt +29 -0
  29. package/android/src/main/res/xml/file_provider_paths.xml +6 -0
  30. package/android/src/newarch/com/reactnativecommunity/webview/RNCWebViewManager.java +553 -0
  31. package/android/src/newarch/com/reactnativecommunity/webview/RNCWebViewModule.java +63 -0
  32. package/android/src/oldarch/com/reactnativecommunity/webview/RNCWebViewManager.java +328 -0
  33. package/android/src/oldarch/com/reactnativecommunity/webview/RNCWebViewModule.java +59 -0
  34. package/apple/RCTConvert+WKDataDetectorTypes.h +11 -0
  35. package/apple/RCTConvert+WKDataDetectorTypes.m +27 -0
  36. package/apple/RNCWKProcessPoolManager.h +15 -0
  37. package/apple/RNCWKProcessPoolManager.m +36 -0
  38. package/apple/RNCWebView.h +35 -0
  39. package/apple/RNCWebView.mm +546 -0
  40. package/apple/RNCWebViewDecisionManager.h +20 -0
  41. package/apple/RNCWebViewDecisionManager.m +47 -0
  42. package/apple/RNCWebViewImpl.h +161 -0
  43. package/apple/RNCWebViewImpl.m +1979 -0
  44. package/apple/RNCWebViewManager.h +9 -0
  45. package/apple/RNCWebViewManager.mm +215 -0
  46. package/apple/RNCWebViewModule.h +23 -0
  47. package/apple/RNCWebViewModule.mm +34 -0
  48. package/index.d.ts +65 -0
  49. package/index.js +4 -0
  50. package/ios/RNCWebView.xcodeproj/project.pbxproj +273 -0
  51. package/lib/NativeRNCWebViewModule.d.ts +10 -0
  52. package/lib/NativeRNCWebViewModule.js +1 -0
  53. package/lib/RNCWebViewNativeComponent.d.ts +242 -0
  54. package/lib/RNCWebViewNativeComponent.js +1 -0
  55. package/lib/WebView.android.d.ts +6 -0
  56. package/lib/WebView.android.js +1 -0
  57. package/lib/WebView.d.ts +6 -0
  58. package/lib/WebView.ios.d.ts +6 -0
  59. package/lib/WebView.ios.js +1 -0
  60. package/lib/WebView.js +1 -0
  61. package/lib/WebView.macos.d.ts +6 -0
  62. package/lib/WebView.macos.js +1 -0
  63. package/lib/WebView.styles.d.ts +38 -0
  64. package/lib/WebView.styles.js +1 -0
  65. package/lib/WebView.windows.d.ts +17 -0
  66. package/lib/WebView.windows.js +1 -0
  67. package/lib/WebViewNativeComponent.macos.d.ts +3 -0
  68. package/lib/WebViewNativeComponent.macos.js +1 -0
  69. package/lib/WebViewNativeComponent.windows.d.ts +3 -0
  70. package/lib/WebViewNativeComponent.windows.js +1 -0
  71. package/lib/WebViewShared.d.ts +38 -0
  72. package/lib/WebViewShared.js +1 -0
  73. package/lib/WebViewTypes.d.ts +1093 -0
  74. package/lib/WebViewTypes.js +1 -0
  75. package/lib/index.d.ts +3 -0
  76. package/lib/index.js +1 -0
  77. package/macos/RNCWebView.xcodeproj/project.pbxproj +363 -0
  78. package/package.json +101 -0
  79. package/react-native-webview.podspec +46 -0
  80. package/react-native.config.js +44 -0
  81. package/src/NativeRNCWebViewModule.ts +15 -0
  82. package/src/RNCWebViewNativeComponent.ts +342 -0
  83. package/src/WebView.android.tsx +317 -0
  84. package/src/WebView.ios.tsx +299 -0
  85. package/src/WebView.macos.tsx +245 -0
  86. package/src/WebView.styles.ts +41 -0
  87. package/src/WebView.tsx +25 -0
  88. package/src/WebView.windows.tsx +210 -0
  89. package/src/WebViewNativeComponent.macos.ts +7 -0
  90. package/src/WebViewNativeComponent.windows.ts +8 -0
  91. package/src/WebViewShared.tsx +283 -0
  92. package/src/WebViewTypes.ts +1332 -0
  93. package/src/__tests__/WebViewShared-test.js +323 -0
  94. package/src/__tests__/__snapshots__/WebViewShared-test.js.snap +8 -0
  95. package/src/index.ts +4 -0
  96. package/windows/ExperimentalFeatures.props +11 -0
  97. package/windows/ReactNativeWebView/PropertySheet.props +16 -0
  98. package/windows/ReactNativeWebView/ReactNativeWebView.def +3 -0
  99. package/windows/ReactNativeWebView/ReactNativeWebView.filters +33 -0
  100. package/windows/ReactNativeWebView/ReactNativeWebView.vcxproj +189 -0
  101. package/windows/ReactNativeWebView/ReactPackageProvider.cpp +26 -0
  102. package/windows/ReactNativeWebView/ReactPackageProvider.h +20 -0
  103. package/windows/ReactNativeWebView/ReactPackageProvider.idl +7 -0
  104. package/windows/ReactNativeWebView/ReactWebView.cpp +242 -0
  105. package/windows/ReactNativeWebView/ReactWebView.h +56 -0
  106. package/windows/ReactNativeWebView/ReactWebView.idl +31 -0
  107. package/windows/ReactNativeWebView/ReactWebView2.cpp +473 -0
  108. package/windows/ReactNativeWebView/ReactWebView2.h +91 -0
  109. package/windows/ReactNativeWebView/ReactWebView2Manager.cpp +205 -0
  110. package/windows/ReactNativeWebView/ReactWebView2Manager.h +57 -0
  111. package/windows/ReactNativeWebView/ReactWebViewHelpers.cpp +70 -0
  112. package/windows/ReactNativeWebView/ReactWebViewHelpers.h +16 -0
  113. package/windows/ReactNativeWebView/ReactWebViewManager.cpp +224 -0
  114. package/windows/ReactNativeWebView/ReactWebViewManager.h +58 -0
  115. package/windows/ReactNativeWebView/WebBridge.cpp +19 -0
  116. package/windows/ReactNativeWebView/WebBridge.h +24 -0
  117. package/windows/ReactNativeWebView/WebBridge.idl +11 -0
  118. package/windows/ReactNativeWebView/pch.cpp +1 -0
  119. package/windows/ReactNativeWebView/pch.h +37 -0
  120. package/windows/ReactNativeWebView.sln +185 -0
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.NativeWebViewWindows=exports.NativeWebViewMacOS=void 0;var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=require("react");function _callSuper(t,o,e){return o=(0,_getPrototypeOf2.default)(o),(0,_possibleConstructorReturn2.default)(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2.default)(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var NativeWebViewMacOS=exports.NativeWebViewMacOS=function(_NativeWebViewMacOSBa){function NativeWebViewMacOS(){(0,_classCallCheck2.default)(this,NativeWebViewMacOS);return _callSuper(this,NativeWebViewMacOS,arguments);}(0,_inherits2.default)(NativeWebViewMacOS,_NativeWebViewMacOSBa);return(0,_createClass2.default)(NativeWebViewMacOS);}(NativeWebViewMacOSBase);var NativeWebViewWindows=exports.NativeWebViewWindows=function(_NativeWebViewWindows){function NativeWebViewWindows(){(0,_classCallCheck2.default)(this,NativeWebViewWindows);return _callSuper(this,NativeWebViewWindows,arguments);}(0,_inherits2.default)(NativeWebViewWindows,_NativeWebViewWindows);return(0,_createClass2.default)(NativeWebViewWindows);}(NativeWebViewWindowsBase);
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import WebView from './WebView';
2
+ export { WebView };
3
+ export default WebView;
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"WebView",{enumerable:true,get:function get(){return _WebView.default;}});exports.default=void 0;var _WebView=_interopRequireDefault(require("./WebView"));var _default=exports.default=_WebView.default;
@@ -0,0 +1,363 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 3515965E21A3C86000623BFA /* RNCWKProcessPoolManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3515965D21A3C86000623BFA /* RNCWKProcessPoolManager.m */; };
11
+ 38116A2B23BBECB700ACE311 /* RNCWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351B21446E6C00F9801F /* RNCWebViewManager.m */; };
12
+ 38116A2C23BBECB700ACE311 /* RNCWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351C21446E6C00F9801F /* RNCWebView.m */; };
13
+ 38116A2D23BBECB700ACE311 /* RNCWKProcessPoolManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3515965D21A3C86000623BFA /* RNCWKProcessPoolManager.m */; };
14
+ E91B351D21446E6C00F9801F /* RNCWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351B21446E6C00F9801F /* RNCWebViewManager.m */; };
15
+ E91B351E21446E6C00F9801F /* RNCWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351C21446E6C00F9801F /* RNCWebView.m */; };
16
+ /* End PBXBuildFile section */
17
+
18
+ /* Begin PBXCopyFilesBuildPhase section */
19
+ 38116A2F23BBECB700ACE311 /* CopyFiles */ = {
20
+ isa = PBXCopyFilesBuildPhase;
21
+ buildActionMask = 2147483647;
22
+ dstPath = "include/$(PRODUCT_NAME)";
23
+ dstSubfolderSpec = 16;
24
+ files = (
25
+ );
26
+ runOnlyForDeploymentPostprocessing = 0;
27
+ };
28
+ 58B511D91A9E6C8500147676 /* CopyFiles */ = {
29
+ isa = PBXCopyFilesBuildPhase;
30
+ buildActionMask = 2147483647;
31
+ dstPath = "include/$(PRODUCT_NAME)";
32
+ dstSubfolderSpec = 16;
33
+ files = (
34
+ );
35
+ runOnlyForDeploymentPostprocessing = 0;
36
+ };
37
+ /* End PBXCopyFilesBuildPhase section */
38
+
39
+ /* Begin PBXFileReference section */
40
+ 134814201AA4EA6300B7C361 /* libRNCWebView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNCWebView.a; sourceTree = BUILT_PRODUCTS_DIR; };
41
+ 3515965D21A3C86000623BFA /* RNCWKProcessPoolManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNCWKProcessPoolManager.m; path = ../apple/RNCWKProcessPoolManager.m; sourceTree = "<group>"; };
42
+ 3515965F21A3C87E00623BFA /* RNCWKProcessPoolManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RNCWKProcessPoolManager.h; path = ../apple/RNCWKProcessPoolManager.h; sourceTree = "<group>"; };
43
+ 38116A3323BBECB700ACE311 /* libRNCWebView-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libRNCWebView-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
44
+ E91B351921446E6C00F9801F /* RNCWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RNCWebViewManager.h; path = ../apple/RNCWebViewManager.h; sourceTree = "<group>"; };
45
+ E91B351A21446E6C00F9801F /* RNCWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RNCWebView.h; path = ../apple/RNCWebView.h; sourceTree = "<group>"; };
46
+ E91B351B21446E6C00F9801F /* RNCWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNCWebViewManager.m; path = ../apple/RNCWebViewManager.m; sourceTree = "<group>"; };
47
+ E91B351C21446E6C00F9801F /* RNCWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNCWebView.m; path = ../apple/RNCWebView.m; sourceTree = "<group>"; };
48
+ /* End PBXFileReference section */
49
+
50
+ /* Begin PBXFrameworksBuildPhase section */
51
+ 38116A2E23BBECB700ACE311 /* Frameworks */ = {
52
+ isa = PBXFrameworksBuildPhase;
53
+ buildActionMask = 2147483647;
54
+ files = (
55
+ );
56
+ runOnlyForDeploymentPostprocessing = 0;
57
+ };
58
+ 58B511D81A9E6C8500147676 /* Frameworks */ = {
59
+ isa = PBXFrameworksBuildPhase;
60
+ buildActionMask = 2147483647;
61
+ files = (
62
+ );
63
+ runOnlyForDeploymentPostprocessing = 0;
64
+ };
65
+ /* End PBXFrameworksBuildPhase section */
66
+
67
+ /* Begin PBXGroup section */
68
+ 134814211AA4EA7D00B7C361 /* Products */ = {
69
+ isa = PBXGroup;
70
+ children = (
71
+ 134814201AA4EA6300B7C361 /* libRNCWebView.a */,
72
+ );
73
+ name = Products;
74
+ sourceTree = "<group>";
75
+ };
76
+ 58B511D21A9E6C8500147676 = {
77
+ isa = PBXGroup;
78
+ children = (
79
+ E91B351A21446E6C00F9801F /* RNCWebView.h */,
80
+ E91B351C21446E6C00F9801F /* RNCWebView.m */,
81
+ E91B351921446E6C00F9801F /* RNCWebViewManager.h */,
82
+ E91B351B21446E6C00F9801F /* RNCWebViewManager.m */,
83
+ 3515965F21A3C87E00623BFA /* RNCWKProcessPoolManager.h */,
84
+ 3515965D21A3C86000623BFA /* RNCWKProcessPoolManager.m */,
85
+ 134814211AA4EA7D00B7C361 /* Products */,
86
+ 38116A3323BBECB700ACE311 /* libRNCWebView-macOS.a */,
87
+ );
88
+ sourceTree = "<group>";
89
+ };
90
+ /* End PBXGroup section */
91
+
92
+ /* Begin PBXNativeTarget section */
93
+ 38116A2923BBECB700ACE311 /* RNCWebView-macOS */ = {
94
+ isa = PBXNativeTarget;
95
+ buildConfigurationList = 38116A3023BBECB700ACE311 /* Build configuration list for PBXNativeTarget "RNCWebView-macOS" */;
96
+ buildPhases = (
97
+ 38116A2A23BBECB700ACE311 /* Sources */,
98
+ 38116A2E23BBECB700ACE311 /* Frameworks */,
99
+ 38116A2F23BBECB700ACE311 /* CopyFiles */,
100
+ );
101
+ buildRules = (
102
+ );
103
+ dependencies = (
104
+ );
105
+ name = "RNCWebView-macOS";
106
+ productName = RCTDataManager;
107
+ productReference = 38116A3323BBECB700ACE311 /* libRNCWebView-macOS.a */;
108
+ productType = "com.apple.product-type.library.static";
109
+ };
110
+ 58B511DA1A9E6C8500147676 /* RNCWebView */ = {
111
+ isa = PBXNativeTarget;
112
+ buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNCWebView" */;
113
+ buildPhases = (
114
+ 58B511D71A9E6C8500147676 /* Sources */,
115
+ 58B511D81A9E6C8500147676 /* Frameworks */,
116
+ 58B511D91A9E6C8500147676 /* CopyFiles */,
117
+ );
118
+ buildRules = (
119
+ );
120
+ dependencies = (
121
+ );
122
+ name = RNCWebView;
123
+ productName = RCTDataManager;
124
+ productReference = 134814201AA4EA6300B7C361 /* libRNCWebView.a */;
125
+ productType = "com.apple.product-type.library.static";
126
+ };
127
+ /* End PBXNativeTarget section */
128
+
129
+ /* Begin PBXProject section */
130
+ 58B511D31A9E6C8500147676 /* Project object */ = {
131
+ isa = PBXProject;
132
+ attributes = {
133
+ LastUpgradeCheck = 0830;
134
+ ORGANIZATIONNAME = Facebook;
135
+ TargetAttributes = {
136
+ 58B511DA1A9E6C8500147676 = {
137
+ CreatedOnToolsVersion = 6.1.1;
138
+ };
139
+ };
140
+ };
141
+ buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNCWebView" */;
142
+ compatibilityVersion = "Xcode 3.2";
143
+ developmentRegion = en;
144
+ hasScannedForEncodings = 0;
145
+ knownRegions = (
146
+ en,
147
+ );
148
+ mainGroup = 58B511D21A9E6C8500147676;
149
+ productRefGroup = 58B511D21A9E6C8500147676;
150
+ projectDirPath = "";
151
+ projectRoot = "";
152
+ targets = (
153
+ 58B511DA1A9E6C8500147676 /* RNCWebView */,
154
+ 38116A2923BBECB700ACE311 /* RNCWebView-macOS */,
155
+ );
156
+ };
157
+ /* End PBXProject section */
158
+
159
+ /* Begin PBXSourcesBuildPhase section */
160
+ 38116A2A23BBECB700ACE311 /* Sources */ = {
161
+ isa = PBXSourcesBuildPhase;
162
+ buildActionMask = 2147483647;
163
+ files = (
164
+ 38116A2B23BBECB700ACE311 /* RNCWebViewManager.m in Sources */,
165
+ 38116A2C23BBECB700ACE311 /* RNCWebView.m in Sources */,
166
+ 38116A2D23BBECB700ACE311 /* RNCWKProcessPoolManager.m in Sources */,
167
+ );
168
+ runOnlyForDeploymentPostprocessing = 0;
169
+ };
170
+ 58B511D71A9E6C8500147676 /* Sources */ = {
171
+ isa = PBXSourcesBuildPhase;
172
+ buildActionMask = 2147483647;
173
+ files = (
174
+ E91B351D21446E6C00F9801F /* RNCWebViewManager.m in Sources */,
175
+ E91B351E21446E6C00F9801F /* RNCWebView.m in Sources */,
176
+ 3515965E21A3C86000623BFA /* RNCWKProcessPoolManager.m in Sources */,
177
+ );
178
+ runOnlyForDeploymentPostprocessing = 0;
179
+ };
180
+ /* End PBXSourcesBuildPhase section */
181
+
182
+ /* Begin XCBuildConfiguration section */
183
+ 38116A3123BBECB700ACE311 /* Debug */ = {
184
+ isa = XCBuildConfiguration;
185
+ buildSettings = {
186
+ FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-macos/React/**";
187
+ HEADER_SEARCH_PATHS = (
188
+ "$(inherited)",
189
+ "$(SRCROOT)/../node_modules/react-native-macos/React/**",
190
+ );
191
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
192
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
193
+ OTHER_LDFLAGS = "-ObjC";
194
+ PRODUCT_NAME = "$(TARGET_NAME)";
195
+ SDKROOT = macosx;
196
+ SKIP_INSTALL = YES;
197
+ };
198
+ name = Debug;
199
+ };
200
+ 38116A3223BBECB700ACE311 /* Release */ = {
201
+ isa = XCBuildConfiguration;
202
+ buildSettings = {
203
+ FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-macos/React/**";
204
+ HEADER_SEARCH_PATHS = (
205
+ "$(inherited)",
206
+ "$(SRCROOT)/../node_modules/react-native-macos/React/**",
207
+ );
208
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
209
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
210
+ OTHER_LDFLAGS = "-ObjC";
211
+ PRODUCT_NAME = "$(TARGET_NAME)";
212
+ SDKROOT = macosx;
213
+ SKIP_INSTALL = YES;
214
+ };
215
+ name = Release;
216
+ };
217
+ 58B511ED1A9E6C8500147676 /* Debug */ = {
218
+ isa = XCBuildConfiguration;
219
+ buildSettings = {
220
+ ALWAYS_SEARCH_USER_PATHS = NO;
221
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
222
+ CLANG_CXX_LIBRARY = "libc++";
223
+ CLANG_ENABLE_MODULES = YES;
224
+ CLANG_ENABLE_OBJC_ARC = YES;
225
+ CLANG_WARN_BOOL_CONVERSION = YES;
226
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
227
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
228
+ CLANG_WARN_EMPTY_BODY = YES;
229
+ CLANG_WARN_ENUM_CONVERSION = YES;
230
+ CLANG_WARN_INFINITE_RECURSION = YES;
231
+ CLANG_WARN_INT_CONVERSION = YES;
232
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
233
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
234
+ CLANG_WARN_UNREACHABLE_CODE = YES;
235
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
236
+ COPY_PHASE_STRIP = NO;
237
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
238
+ ENABLE_TESTABILITY = YES;
239
+ GCC_C_LANGUAGE_STANDARD = gnu99;
240
+ GCC_DYNAMIC_NO_PIC = NO;
241
+ GCC_NO_COMMON_BLOCKS = YES;
242
+ GCC_OPTIMIZATION_LEVEL = 0;
243
+ GCC_PREPROCESSOR_DEFINITIONS = (
244
+ "DEBUG=1",
245
+ "$(inherited)",
246
+ );
247
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
248
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
249
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
250
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
251
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
252
+ GCC_WARN_UNUSED_FUNCTION = YES;
253
+ GCC_WARN_UNUSED_VARIABLE = YES;
254
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
255
+ MTL_ENABLE_DEBUG_INFO = YES;
256
+ ONLY_ACTIVE_ARCH = YES;
257
+ SDKROOT = iphoneos;
258
+ };
259
+ name = Debug;
260
+ };
261
+ 58B511EE1A9E6C8500147676 /* Release */ = {
262
+ isa = XCBuildConfiguration;
263
+ buildSettings = {
264
+ ALWAYS_SEARCH_USER_PATHS = NO;
265
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
266
+ CLANG_CXX_LIBRARY = "libc++";
267
+ CLANG_ENABLE_MODULES = YES;
268
+ CLANG_ENABLE_OBJC_ARC = YES;
269
+ CLANG_WARN_BOOL_CONVERSION = YES;
270
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
271
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
272
+ CLANG_WARN_EMPTY_BODY = YES;
273
+ CLANG_WARN_ENUM_CONVERSION = YES;
274
+ CLANG_WARN_INFINITE_RECURSION = YES;
275
+ CLANG_WARN_INT_CONVERSION = YES;
276
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
277
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
278
+ CLANG_WARN_UNREACHABLE_CODE = YES;
279
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
280
+ COPY_PHASE_STRIP = YES;
281
+ ENABLE_NS_ASSERTIONS = NO;
282
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
283
+ GCC_C_LANGUAGE_STANDARD = gnu99;
284
+ GCC_NO_COMMON_BLOCKS = YES;
285
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
286
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
287
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
288
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
289
+ GCC_WARN_UNUSED_FUNCTION = YES;
290
+ GCC_WARN_UNUSED_VARIABLE = YES;
291
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
292
+ MTL_ENABLE_DEBUG_INFO = NO;
293
+ SDKROOT = iphoneos;
294
+ VALIDATE_PRODUCT = YES;
295
+ };
296
+ name = Release;
297
+ };
298
+ 58B511F01A9E6C8500147676 /* Debug */ = {
299
+ isa = XCBuildConfiguration;
300
+ buildSettings = {
301
+ FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-macos/React/**";
302
+ HEADER_SEARCH_PATHS = (
303
+ "$(inherited)",
304
+ "$(SRCROOT)/../node_modules/react-native-macos/React/**",
305
+ "$(SRCROOT)/../../react-native-macos/React/**",
306
+ );
307
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
308
+ OTHER_LDFLAGS = "-ObjC";
309
+ PRODUCT_NAME = RNCWebView;
310
+ SKIP_INSTALL = YES;
311
+ };
312
+ name = Debug;
313
+ };
314
+ 58B511F11A9E6C8500147676 /* Release */ = {
315
+ isa = XCBuildConfiguration;
316
+ buildSettings = {
317
+ FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-macos/React/**";
318
+ HEADER_SEARCH_PATHS = (
319
+ "$(inherited)",
320
+ "$(SRCROOT)/../node_modules/react-native-macos/React/**",
321
+ "$(SRCROOT)/../../react-native-macos/React/**",
322
+ );
323
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
324
+ OTHER_LDFLAGS = "-ObjC";
325
+ PRODUCT_NAME = RNCWebView;
326
+ SKIP_INSTALL = YES;
327
+ };
328
+ name = Release;
329
+ };
330
+ /* End XCBuildConfiguration section */
331
+
332
+ /* Begin XCConfigurationList section */
333
+ 38116A3023BBECB700ACE311 /* Build configuration list for PBXNativeTarget "RNCWebView-macOS" */ = {
334
+ isa = XCConfigurationList;
335
+ buildConfigurations = (
336
+ 38116A3123BBECB700ACE311 /* Debug */,
337
+ 38116A3223BBECB700ACE311 /* Release */,
338
+ );
339
+ defaultConfigurationIsVisible = 0;
340
+ defaultConfigurationName = Release;
341
+ };
342
+ 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNCWebView" */ = {
343
+ isa = XCConfigurationList;
344
+ buildConfigurations = (
345
+ 58B511ED1A9E6C8500147676 /* Debug */,
346
+ 58B511EE1A9E6C8500147676 /* Release */,
347
+ );
348
+ defaultConfigurationIsVisible = 0;
349
+ defaultConfigurationName = Release;
350
+ };
351
+ 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNCWebView" */ = {
352
+ isa = XCConfigurationList;
353
+ buildConfigurations = (
354
+ 58B511F01A9E6C8500147676 /* Debug */,
355
+ 58B511F11A9E6C8500147676 /* Release */,
356
+ );
357
+ defaultConfigurationIsVisible = 0;
358
+ defaultConfigurationName = Release;
359
+ };
360
+ /* End XCConfigurationList section */
361
+ };
362
+ rootObject = 58B511D31A9E6C8500147676 /* Project object */;
363
+ }
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@javascriptcommon/react-native-webview",
3
+ "description": "React Native WebView component for iOS, Android, macOS, and Windows",
4
+ "main": "index.js",
5
+ "main-internal": "src/index.ts",
6
+ "react-native": "src/index.ts",
7
+ "typings": "index.d.ts",
8
+ "author": "Jamon Holmgren <jamon@infinite.red>",
9
+ "contributors": [
10
+ "Thibault Malbranche <malbranche.thibault@gmail.com>"
11
+ ],
12
+ "license": "MIT",
13
+ "version": "13.12.16",
14
+ "homepage": "https://github.com/react-native-webview/react-native-webview#readme",
15
+ "scripts": {
16
+ "android": "react-native run-android",
17
+ "ios": "react-native run-ios",
18
+ "macos": "react-native run-macos --scheme WebviewExample --project-path example/macos",
19
+ "start": "react-native start",
20
+ "windows": "install-windows-test-app --project-directory example/windows && react-native run-windows --root example --arch x64",
21
+ "ci": "CI=true && yarn lint",
22
+ "ci:publish": "yarn semantic-release",
23
+ "lint": "yarn tsc --noEmit && yarn eslint ./src --ext .ts,.tsx,.js,.jsx",
24
+ "build": "babel --extensions \".ts,.tsx\" --out-dir lib src",
25
+ "prepare:types": "tsc --noEmit false --emitDeclarationOnly --declaration --rootDir src --outDir lib",
26
+ "prepare": "yarn prepare:types && yarn build",
27
+ "appium": "appium",
28
+ "test:windows": "yarn jest --setupFiles=./jest-setups/jest.setup.js",
29
+ "add:macos": "yarn add react-native-macos@0.73.17"
30
+ },
31
+ "rn-docs": {
32
+ "title": "Webview",
33
+ "type": "Component"
34
+ },
35
+ "peerDependencies": {
36
+ "react": "*",
37
+ "react-native": "*"
38
+ },
39
+ "dependencies": {
40
+ "escape-string-regexp": "^4.0.0",
41
+ "invariant": "2.2.4"
42
+ },
43
+ "devDependencies": {
44
+ "@babel/cli": "^7.20.0",
45
+ "@babel/core": "^7.20.0",
46
+ "@babel/runtime": "^7.20.0",
47
+ "@callstack/react-native-visionos": "0.73.8",
48
+ "@react-native/babel-preset": "0.73.21",
49
+ "@react-native/eslint-config": "0.73.2",
50
+ "@react-native/metro-config": "0.73.5",
51
+ "@react-native/typescript-config": "0.73.1",
52
+ "@rnx-kit/metro-config": "1.3.15",
53
+ "@semantic-release/git": "7.0.16",
54
+ "@types/invariant": "^2.2.30",
55
+ "@types/jest": "^29.5.12",
56
+ "@types/react": "18.2.61",
57
+ "@types/selenium-webdriver": "4.0.9",
58
+ "appium": "1.17.0",
59
+ "eslint": "8.57.0",
60
+ "jest": "^29.6.3",
61
+ "prettier": "2.8.8",
62
+ "react": "18.2.0",
63
+ "react-native": "0.73.5",
64
+ "react-native-macos": "0.73.17",
65
+ "react-native-test-app": "3.7.2",
66
+ "react-native-windows": "0.73.8",
67
+ "selenium-appium": "1.0.2",
68
+ "selenium-webdriver": "4.0.0-alpha.7",
69
+ "semantic-release": "15.13.24",
70
+ "typescript": "5.1.3",
71
+ "winappdriver": "^0.0.7"
72
+ },
73
+ "repository": {
74
+ "type": "git",
75
+ "url": "https://github.com/react-native-webview/react-native-webview.git"
76
+ },
77
+ "files": [
78
+ "android/src",
79
+ "android/build.gradle",
80
+ "android/gradle.properties",
81
+ "apple",
82
+ "ios",
83
+ "macos",
84
+ "windows",
85
+ "lib",
86
+ "src",
87
+ "index.js",
88
+ "index.d.ts",
89
+ "react-native-webview.podspec",
90
+ "react-native.config.js"
91
+ ],
92
+ "codegenConfig": {
93
+ "name": "RNCWebViewSpec",
94
+ "type": "all",
95
+ "jsSrcsDir": "./src",
96
+ "android": {
97
+ "javaPackageName": "com.reactnativecommunity.webview"
98
+ }
99
+ },
100
+ "packageManager": "yarn@1.22.19"
101
+ }
@@ -0,0 +1,46 @@
1
+ require 'json'
2
+
3
+ new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
4
+ ios_platform = new_arch_enabled ? '11.0' : '9.0'
5
+
6
+ package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7
+
8
+ Pod::Spec.new do |s|
9
+ s.name = 'react-native-webview'
10
+ s.version = package['version']
11
+ s.summary = package['description']
12
+ s.license = package['license']
13
+
14
+ s.authors = package['author']
15
+ s.homepage = package['homepage']
16
+ s.platforms = { :ios => ios_platform, :osx => "10.13", :visionos => "1.0" }
17
+
18
+ s.source = { :git => "https://github.com/react-native-webview/react-native-webview.git", :tag => "v#{s.version}" }
19
+
20
+ s.source_files = "apple/**/*.{h,m,mm,swift}"
21
+
22
+ if defined?(install_modules_dependencies()) != nil
23
+ install_modules_dependencies(s);
24
+ else
25
+ if new_arch_enabled
26
+ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
27
+
28
+ s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
29
+
30
+ s.pod_target_xcconfig = {
31
+ "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
32
+ "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
33
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
34
+ }
35
+
36
+ s.dependency "React-RCTFabric"
37
+ s.dependency "React-Codegen"
38
+ s.dependency "RCT-Folly"
39
+ s.dependency "RCTRequired"
40
+ s.dependency "RCTTypeSafety"
41
+ s.dependency "ReactCommon/turbomodule/core"
42
+ else
43
+ s.dependency "React-Core"
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,44 @@
1
+ const project = (() => {
2
+ const path = require('path');
3
+ try {
4
+ const { configureProjects } = require('react-native-test-app');
5
+ return configureProjects({
6
+ android: {
7
+ sourceDir: path.join('example', 'android'),
8
+ },
9
+ ios: {
10
+ sourceDir: 'example/ios',
11
+ },
12
+ windows: {
13
+ sourceDir: path.join('example', 'windows'),
14
+ solutionFile: path.join('example', 'windows', 'WebviewExample.sln'),
15
+ },
16
+ });
17
+ } catch (e) {
18
+ return undefined;
19
+ }
20
+ })();
21
+
22
+ module.exports = {
23
+ dependencies: {
24
+ // Help rn-cli find and autolink this library
25
+ 'react-native-webview': {
26
+ root: __dirname,
27
+ },
28
+ },
29
+ dependency: {
30
+ platforms: {
31
+ windows: {
32
+ sourceDir: 'windows',
33
+ solutionFile: 'ReactNativeWebView.sln',
34
+ projects: [
35
+ {
36
+ projectFile: 'ReactNativeWebView/ReactNativeWebView.vcxproj',
37
+ directDependency: true,
38
+ },
39
+ ],
40
+ },
41
+ },
42
+ },
43
+ ...(project ? { project } : undefined),
44
+ };
@@ -0,0 +1,15 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+ import { Double } from 'react-native/Libraries/Types/CodegenTypes';
4
+
5
+ export interface Spec extends TurboModule {
6
+ isFileUploadSupported(): Promise<boolean>;
7
+ shouldStartLoadWithLockIdentifier(
8
+ shouldStart: boolean,
9
+ lockIdentifier: Double
10
+ ): void;
11
+ addListener(eventType: string): void;
12
+ removeListeners(count: number): void;
13
+ }
14
+
15
+ export default TurboModuleRegistry.getEnforcing<Spec>('RNCWebViewModule');