@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,161 @@
1
+ /**
2
+ * Copyright (c) 2015-present, Facebook, Inc.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <React/RCTView.h>
9
+ #import <React/RCTDefines.h>
10
+ #import <WebKit/WKDataDetectorTypes.h>
11
+ #import <WebKit/WebKit.h>
12
+
13
+ #if !TARGET_OS_OSX
14
+ #import <UIKit/UIScrollView.h>
15
+ #endif // !TARGET_OS_OSX
16
+
17
+ #import "RNCWebViewDecisionManager.h"
18
+
19
+ typedef enum RNCWebViewPermissionGrantType : NSUInteger {
20
+ RNCWebViewPermissionGrantType_GrantIfSameHost_ElsePrompt,
21
+ RNCWebViewPermissionGrantType_GrantIfSameHost_ElseDeny,
22
+ RNCWebViewPermissionGrantType_Deny,
23
+ RNCWebViewPermissionGrantType_Grant,
24
+ RNCWebViewPermissionGrantType_Prompt
25
+ } RNCWebViewPermissionGrantType;
26
+
27
+ @class RNCWebViewImpl;
28
+
29
+ NS_ASSUME_NONNULL_BEGIN
30
+
31
+ @protocol RNCWebViewDelegate <NSObject>
32
+
33
+ - (BOOL)webView:(RNCWebViewImpl *)webView
34
+ shouldStartLoadForRequest:(NSMutableDictionary<NSString *, id> *)request
35
+ withCallback:(RCTDirectEventBlock)callback;
36
+
37
+ @end
38
+
39
+ @interface RNCWeakScriptMessageDelegate : NSObject<WKScriptMessageHandler>
40
+
41
+ @property (nonatomic, weak, nullable) id<WKScriptMessageHandler> scriptDelegate;
42
+
43
+ - (nullable instancetype)initWithDelegate:(id<WKScriptMessageHandler> _Nullable)scriptDelegate;
44
+
45
+ @end
46
+
47
+ #if !TARGET_OS_OSX
48
+ @interface RNCWebViewImpl : RCTView <UIEditMenuInteractionDelegate>
49
+
50
+ @property (nonatomic, nullable) UIEditMenuInteraction *editMenuInteraction API_AVAILABLE(ios(16.0));
51
+ #else
52
+ @interface RNCWebViewImpl : RCTView
53
+ #endif // !TARGET_OS_OSX
54
+
55
+
56
+ @property (nonatomic, copy) RCTDirectEventBlock onFileDownload;
57
+ @property (nonatomic, copy) RCTDirectEventBlock onLoadingStart;
58
+ @property (nonatomic, copy) RCTDirectEventBlock onLoadingFinish;
59
+ @property (nonatomic, copy) RCTDirectEventBlock onLoadingError;
60
+ @property (nonatomic, copy) RCTDirectEventBlock onLoadingProgress;
61
+ @property (nonatomic, copy) RCTDirectEventBlock onShouldStartLoadWithRequest;
62
+ @property (nonatomic, copy) RCTDirectEventBlock onHttpError;
63
+ @property (nonatomic, copy) RCTDirectEventBlock onMessage;
64
+ @property (nonatomic, copy) RCTDirectEventBlock onScroll;
65
+ @property (nonatomic, copy) RCTDirectEventBlock onContentProcessDidTerminate;
66
+ @property (nonatomic, copy) RCTDirectEventBlock onOpenWindow;
67
+
68
+
69
+ @property (nonatomic, weak) id<RNCWebViewDelegate> _Nullable delegate;
70
+ @property (nonatomic, copy) NSDictionary * _Nullable source;
71
+ @property (nonatomic, assign) BOOL messagingEnabled;
72
+ @property (nonatomic, copy) NSString * _Nullable injectedJavaScript;
73
+ @property (nonatomic, copy) NSString * _Nullable injectedJavaScriptBeforeContentLoaded;
74
+ @property (nonatomic, assign) BOOL injectedJavaScriptForMainFrameOnly;
75
+ @property (nonatomic, assign) BOOL injectedJavaScriptBeforeContentLoadedForMainFrameOnly;
76
+ @property (nonatomic, copy) NSString * _Nullable injectedJavaScriptObject;
77
+ @property (nonatomic, assign) BOOL scrollEnabled;
78
+ @property (nonatomic, assign) BOOL sharedCookiesEnabled;
79
+ @property (nonatomic, assign) BOOL autoManageStatusBarEnabled;
80
+ @property (nonatomic, assign) BOOL pagingEnabled;
81
+ @property (nonatomic, assign) CGFloat decelerationRate;
82
+ @property (nonatomic, assign) BOOL allowsInlineMediaPlayback;
83
+ @property (nonatomic, assign) BOOL allowsPictureInPictureMediaPlayback;
84
+ @property (nonatomic, assign) BOOL webviewDebuggingEnabled;
85
+ @property (nonatomic, assign) BOOL allowsAirPlayForMediaPlayback;
86
+ @property (nonatomic, assign) BOOL bounces;
87
+ @property (nonatomic, assign) BOOL mediaPlaybackRequiresUserAction;
88
+ @property (nonatomic, assign) UIEdgeInsets contentInset;
89
+ @property (nonatomic, assign) BOOL automaticallyAdjustContentInsets;
90
+ @property (nonatomic, assign) BOOL keyboardDisplayRequiresUserAction;
91
+ @property (nonatomic, assign) BOOL hideKeyboardAccessoryView;
92
+ @property (nonatomic, assign) BOOL allowsBackForwardNavigationGestures;
93
+ @property (nonatomic, assign) BOOL incognito;
94
+ @property (nonatomic, assign) BOOL useSharedProcessPool;
95
+ @property (nonatomic, copy) NSString * _Nullable userAgent;
96
+ @property (nonatomic, copy) NSString * _Nullable applicationNameForUserAgent;
97
+ @property (nonatomic, assign) BOOL cacheEnabled;
98
+ @property (nonatomic, assign) BOOL javaScriptEnabled;
99
+ @property (nonatomic, assign) BOOL javaScriptCanOpenWindowsAutomatically;
100
+ @property (nonatomic, assign) BOOL allowFileAccessFromFileURLs;
101
+ @property (nonatomic, assign) BOOL allowUniversalAccessFromFileURLs;
102
+ @property (nonatomic, assign) BOOL allowsLinkPreview;
103
+ @property (nonatomic, assign) BOOL showsHorizontalScrollIndicator;
104
+ @property (nonatomic, assign) BOOL showsVerticalScrollIndicator;
105
+ @property (nonatomic, assign) BOOL directionalLockEnabled;
106
+ @property (nonatomic, assign) BOOL ignoreSilentHardwareSwitch;
107
+ @property (nonatomic, copy) NSString * _Nullable allowingReadAccessToURL;
108
+ @property (nonatomic, copy) NSDictionary * _Nullable basicAuthCredential;
109
+ @property (nonatomic, assign) BOOL pullToRefreshEnabled;
110
+ @property (nonatomic, assign) BOOL refreshControlLightMode;
111
+ @property (nonatomic, assign) BOOL enableApplePay;
112
+ @property (nonatomic, copy) NSArray<NSDictionary *> * _Nullable menuItems;
113
+ @property (nonatomic, copy) NSArray<NSString *> * _Nullable suppressMenuItems;
114
+ @property (nonatomic, copy) RCTDirectEventBlock onCustomMenuSelection;
115
+ #if !TARGET_OS_OSX
116
+ @property (nonatomic, assign) WKDataDetectorTypes dataDetectorTypes;
117
+ @property (nonatomic, weak) UIRefreshControl * _Nullable refreshControl;
118
+ #endif
119
+
120
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 /* iOS 13 */
121
+ @property (nonatomic, assign) WKContentMode contentMode;
122
+ @property (nonatomic, assign) BOOL fraudulentWebsiteWarningEnabled;
123
+ #endif
124
+
125
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000 /* iOS 14 */
126
+ @property (nonatomic, assign) BOOL limitsNavigationsToAppBoundDomains;
127
+ #endif
128
+
129
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 140500 /* iOS 14.5 */
130
+ @property (nonatomic, assign) BOOL textInteractionEnabled;
131
+ #endif
132
+
133
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 /* iOS 15 */
134
+ @property (nonatomic, assign) RNCWebViewPermissionGrantType mediaCapturePermissionGrantType;
135
+ #endif
136
+
137
+ #if !TARGET_OS_OSX
138
+ - (void)setContentInsetAdjustmentBehavior:(UIScrollViewContentInsetAdjustmentBehavior)behavior;
139
+ #endif // !TARGET_OS_OSX
140
+
141
+ + (void)setClientAuthenticationCredential:(nullable NSURLCredential*)credential;
142
+ + (void)setCustomCertificatesForHost:(nullable NSDictionary *)certificates;
143
+ - (void)postMessage:(NSString *_Nullable)message;
144
+ - (void)injectJavaScript:(NSString *_Nullable)script;
145
+ - (void)goForward;
146
+ - (void)goBack;
147
+ - (void)reload;
148
+ - (void)stopLoading;
149
+ - (void)requestFocus;
150
+ - (void)clearCache:(BOOL)includeDiskFiles;
151
+ #ifdef RCT_NEW_ARCH_ENABLED
152
+ - (void)destroyWebView;
153
+ #endif
154
+ #if !TARGET_OS_OSX
155
+ - (void)addPullToRefreshControl;
156
+ - (void)pullToRefresh:(UIRefreshControl *)refreshControl;
157
+ #endif
158
+
159
+ @end
160
+
161
+ NS_ASSUME_NONNULL_END