@momo-kits/webview 0.0.65-beta → 0.0.65-beta.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/index.d.ts +1 -46
- package/index.js +0 -2
- package/lib/WebView.android.d.ts +4 -72
- package/lib/WebView.android.d.ts.map +1 -1
- package/lib/WebView.android.js +101 -307
- package/lib/WebView.d.ts +2 -2
- package/lib/WebView.d.ts.map +1 -1
- package/lib/WebView.ios.d.ts +4 -80
- package/lib/WebView.ios.d.ts.map +1 -1
- package/lib/WebView.ios.js +86 -221
- package/lib/WebView.js +7 -12
- package/lib/WebView.macos.d.ts +4 -80
- package/lib/WebView.macos.d.ts.map +1 -1
- package/lib/WebView.macos.js +83 -219
- package/lib/WebView.styles.js +0 -2
- package/lib/WebView.windows.d.ts +5 -26
- package/lib/WebView.windows.d.ts.map +1 -1
- package/lib/WebView.windows.js +114 -161
- package/lib/WebViewNativeComponent.android.d.ts +4 -0
- package/lib/WebViewNativeComponent.android.d.ts.map +1 -0
- package/lib/WebViewNativeComponent.android.js +3 -0
- package/lib/WebViewNativeComponent.ios.d.ts +4 -0
- package/lib/WebViewNativeComponent.ios.d.ts.map +1 -0
- package/lib/WebViewNativeComponent.ios.js +3 -0
- package/lib/WebViewNativeComponent.macos.d.ts +4 -0
- package/lib/WebViewNativeComponent.macos.d.ts.map +1 -0
- package/lib/WebViewNativeComponent.macos.js +3 -0
- package/lib/WebViewNativeComponent.windows.d.ts +4 -0
- package/lib/WebViewNativeComponent.windows.d.ts.map +1 -0
- package/lib/WebViewNativeComponent.windows.js +3 -0
- package/lib/WebViewShared.d.ts +32 -2
- package/lib/WebViewShared.d.ts.map +1 -1
- package/lib/WebViewShared.js +99 -16
- package/lib/WebViewTypes.d.ts +242 -14
- package/lib/WebViewTypes.d.ts.map +1 -1
- package/lib/WebViewTypes.js +4 -3
- package/lib/index.d.ts.map +1 -0
- package/package.json +15 -15
- package/publish.sh +2 -2
package/lib/WebView.ios.d.ts
CHANGED
|
@@ -1,83 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
cacheEnabled: boolean;
|
|
7
|
-
originWhitelist: string[];
|
|
8
|
-
useSharedProcessPool: boolean;
|
|
9
|
-
};
|
|
10
|
-
static isFileUploadSupported: () => Promise<boolean>;
|
|
11
|
-
state: State;
|
|
12
|
-
webViewRef: React.RefObject<NativeWebViewIOS>;
|
|
13
|
-
getCommands: () => {
|
|
14
|
-
goForward: number;
|
|
15
|
-
goBack: number;
|
|
16
|
-
reload: number;
|
|
17
|
-
stopLoading: number;
|
|
18
|
-
postMessage: number;
|
|
19
|
-
injectJavaScript: number;
|
|
20
|
-
loadUrl: number;
|
|
21
|
-
requestFocus: number;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Go forward one page in the web view's history.
|
|
25
|
-
*/
|
|
26
|
-
goForward: () => void;
|
|
27
|
-
/**
|
|
28
|
-
* Go back one page in the web view's history.
|
|
29
|
-
*/
|
|
30
|
-
goBack: () => void;
|
|
31
|
-
/**
|
|
32
|
-
* Reloads the current page.
|
|
33
|
-
*/
|
|
34
|
-
reload: () => void;
|
|
35
|
-
/**
|
|
36
|
-
* Stop loading the current page.
|
|
37
|
-
*/
|
|
38
|
-
stopLoading: () => void;
|
|
39
|
-
/**
|
|
40
|
-
* Request focus on WebView rendered page.
|
|
41
|
-
*/
|
|
42
|
-
requestFocus: () => void;
|
|
43
|
-
/**
|
|
44
|
-
* Posts a message to the web view, which will emit a `message` event.
|
|
45
|
-
* Accepts one argument, `data`, which must be a string.
|
|
46
|
-
*
|
|
47
|
-
* In your webview, you'll need to something like the following.
|
|
48
|
-
*
|
|
49
|
-
* ```js
|
|
50
|
-
* document.addEventListener('message', e => { document.title = e.data; });
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
postMessage: (data: string) => void;
|
|
54
|
-
/**
|
|
55
|
-
* Injects a javascript string into the referenced WebView. Deliberately does not
|
|
56
|
-
* return a response because using eval() to return a response breaks this method
|
|
57
|
-
* on pages with a Content Security Policy that disallows eval(). If you need that
|
|
58
|
-
* functionality, look into postMessage/onMessage.
|
|
59
|
-
*/
|
|
60
|
-
injectJavaScript: (data: string) => void;
|
|
61
|
-
/**
|
|
62
|
-
* We return an event with a bunch of fields including:
|
|
63
|
-
* url, title, loading, canGoBack, canGoForward
|
|
64
|
-
*/
|
|
65
|
-
updateNavigationState: (event: WebViewNavigationEvent) => void;
|
|
66
|
-
/**
|
|
67
|
-
* Returns the native `WebView` node.
|
|
68
|
-
*/
|
|
69
|
-
getWebViewHandle: () => number;
|
|
70
|
-
onLoadingStart: (event: WebViewNavigationEvent) => void;
|
|
71
|
-
onLoadingError: (event: WebViewErrorEvent) => void;
|
|
72
|
-
onHttpError: (event: WebViewHttpErrorEvent) => void;
|
|
73
|
-
onLoadingFinish: (event: WebViewNavigationEvent) => void;
|
|
74
|
-
onMessage: (event: WebViewMessageEvent) => void;
|
|
75
|
-
onLoadingProgress: (event: WebViewProgressEvent) => void;
|
|
76
|
-
onShouldStartLoadWithRequestCallback: (shouldStart: boolean, _url: string, lockIdentifier: number) => void;
|
|
77
|
-
onContentProcessDidTerminate: (event: WebViewTerminatedEvent) => void;
|
|
78
|
-
componentDidUpdate(prevProps: IOSWebViewProps): void;
|
|
79
|
-
showRedboxOnPropChanges(prevProps: IOSWebViewProps, propName: keyof IOSWebViewProps): void;
|
|
80
|
-
render(): JSX.Element;
|
|
81
|
-
}
|
|
2
|
+
import { IOSWebViewProps } from './WebViewTypes';
|
|
3
|
+
declare const WebView: React.ForwardRefExoticComponent<IOSWebViewProps & React.RefAttributes<{}>> & {
|
|
4
|
+
isFileUploadSupported: () => Promise<boolean>;
|
|
5
|
+
};
|
|
82
6
|
export default WebView;
|
|
83
7
|
//# sourceMappingURL=WebView.ios.d.ts.map
|
package/lib/WebView.ios.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebView.ios.d.ts","sourceRoot":"","sources":["../src/WebView.ios.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"WebView.ios.d.ts","sourceRoot":"","sources":["../src/WebView.ios.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAkBpF,OAAO,EACL,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AA+LxB,QAAA,MAAM,OAAO;iCAHsB,QAAQ,OAAO,CAAC;CAGqB,CAAC;AAEzE,eAAe,OAAO,CAAC"}
|
package/lib/WebView.ios.js
CHANGED
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
|
|
3
|
-
var __extends = (this && this.__extends) || (function () {
|
|
4
|
-
var extendStatics = function (d, b) {
|
|
5
|
-
extendStatics = Object.setPrototypeOf ||
|
|
6
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
7
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
8
|
-
return extendStatics(d, b);
|
|
9
|
-
};
|
|
10
|
-
return function (d, b) {
|
|
11
|
-
extendStatics(d, b);
|
|
12
|
-
function __() { this.constructor = d; }
|
|
13
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
-
};
|
|
15
|
-
})();
|
|
16
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -60,12 +45,18 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
60
45
|
}
|
|
61
46
|
return t;
|
|
62
47
|
};
|
|
63
|
-
import React from 'react';
|
|
64
|
-
import {
|
|
48
|
+
import React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';
|
|
49
|
+
import { Image, View, NativeModules, } from 'react-native';
|
|
65
50
|
import invariant from 'invariant';
|
|
66
|
-
|
|
51
|
+
// @ts-expect-error react-native doesn't have this type
|
|
52
|
+
import codegenNativeCommandsUntyped from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
53
|
+
import RNCWebView from "./WebViewNativeComponent.ios";
|
|
54
|
+
import { defaultOriginWhitelist, defaultRenderError, defaultRenderLoading, useWebWiewLogic, } from './WebViewShared';
|
|
67
55
|
import styles from './WebView.styles';
|
|
68
|
-
var
|
|
56
|
+
var codegenNativeCommands = codegenNativeCommandsUntyped;
|
|
57
|
+
var Commands = codegenNativeCommands({
|
|
58
|
+
supportedCommands: ['goBack', 'goForward', 'reload', 'stopLoading', 'injectJavaScript', 'requestFocus', 'postMessage', 'loadUrl']
|
|
59
|
+
});
|
|
69
60
|
var resolveAssetSource = Image.resolveAssetSource;
|
|
70
61
|
var processDecelerationRate = function (decelerationRate) {
|
|
71
62
|
var newDecelerationRate = decelerationRate;
|
|
@@ -78,207 +69,81 @@ var processDecelerationRate = function (decelerationRate) {
|
|
|
78
69
|
return newDecelerationRate;
|
|
79
70
|
};
|
|
80
71
|
var RNCWebViewManager = NativeModules.RNCWebViewManager;
|
|
81
|
-
var
|
|
82
|
-
var
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
_this.state = {
|
|
87
|
-
viewState: _this.props.startInLoadingState ? 'LOADING' : 'IDLE',
|
|
88
|
-
lastErrorEvent: null
|
|
89
|
-
};
|
|
90
|
-
_this.webViewRef = React.createRef();
|
|
91
|
-
// eslint-disable-next-line react/sort-comp
|
|
92
|
-
_this.getCommands = function () { return UIManager.getViewManagerConfig('RNCWebView').Commands; };
|
|
93
|
-
/**
|
|
94
|
-
* Go forward one page in the web view's history.
|
|
95
|
-
*/
|
|
96
|
-
_this.goForward = function () {
|
|
97
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().goForward, undefined);
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Go back one page in the web view's history.
|
|
101
|
-
*/
|
|
102
|
-
_this.goBack = function () {
|
|
103
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().goBack, undefined);
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Reloads the current page.
|
|
107
|
-
*/
|
|
108
|
-
_this.reload = function () {
|
|
109
|
-
_this.setState({ viewState: 'LOADING' });
|
|
110
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().reload, undefined);
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Stop loading the current page.
|
|
114
|
-
*/
|
|
115
|
-
_this.stopLoading = function () {
|
|
116
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().stopLoading, undefined);
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Request focus on WebView rendered page.
|
|
120
|
-
*/
|
|
121
|
-
_this.requestFocus = function () {
|
|
122
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().requestFocus, undefined);
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* Posts a message to the web view, which will emit a `message` event.
|
|
126
|
-
* Accepts one argument, `data`, which must be a string.
|
|
127
|
-
*
|
|
128
|
-
* In your webview, you'll need to something like the following.
|
|
129
|
-
*
|
|
130
|
-
* ```js
|
|
131
|
-
* document.addEventListener('message', e => { document.title = e.data; });
|
|
132
|
-
* ```
|
|
133
|
-
*/
|
|
134
|
-
_this.postMessage = function (data) {
|
|
135
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().postMessage, [String(data)]);
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* Injects a javascript string into the referenced WebView. Deliberately does not
|
|
139
|
-
* return a response because using eval() to return a response breaks this method
|
|
140
|
-
* on pages with a Content Security Policy that disallows eval(). If you need that
|
|
141
|
-
* functionality, look into postMessage/onMessage.
|
|
142
|
-
*/
|
|
143
|
-
_this.injectJavaScript = function (data) {
|
|
144
|
-
UIManager.dispatchViewManagerCommand(_this.getWebViewHandle(), _this.getCommands().injectJavaScript, [data]);
|
|
145
|
-
};
|
|
146
|
-
/**
|
|
147
|
-
* We return an event with a bunch of fields including:
|
|
148
|
-
* url, title, loading, canGoBack, canGoForward
|
|
149
|
-
*/
|
|
150
|
-
_this.updateNavigationState = function (event) {
|
|
151
|
-
if (_this.props.onNavigationStateChange) {
|
|
152
|
-
_this.props.onNavigationStateChange(event.nativeEvent);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
/**
|
|
156
|
-
* Returns the native `WebView` node.
|
|
157
|
-
*/
|
|
158
|
-
_this.getWebViewHandle = function () {
|
|
159
|
-
var nodeHandle = findNodeHandle(_this.webViewRef.current);
|
|
160
|
-
invariant(nodeHandle != null, 'nodeHandle expected to be non-null');
|
|
161
|
-
return nodeHandle;
|
|
162
|
-
};
|
|
163
|
-
_this.onLoadingStart = function (event) {
|
|
164
|
-
var onLoadStart = _this.props.onLoadStart;
|
|
165
|
-
if (onLoadStart) {
|
|
166
|
-
onLoadStart(event);
|
|
167
|
-
}
|
|
168
|
-
_this.updateNavigationState(event);
|
|
169
|
-
};
|
|
170
|
-
_this.onLoadingError = function (event) {
|
|
171
|
-
event.persist(); // persist this event because we need to store it
|
|
172
|
-
var _a = _this.props, onError = _a.onError, onLoadEnd = _a.onLoadEnd;
|
|
173
|
-
if (onLoadEnd) {
|
|
174
|
-
onLoadEnd(event);
|
|
175
|
-
}
|
|
176
|
-
if (onError) {
|
|
177
|
-
onError(event);
|
|
178
|
-
}
|
|
179
|
-
console.warn('Encountered an error loading page', event.nativeEvent);
|
|
180
|
-
_this.setState({
|
|
181
|
-
lastErrorEvent: event.nativeEvent,
|
|
182
|
-
viewState: 'ERROR'
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
_this.onHttpError = function (event) {
|
|
186
|
-
var onHttpError = _this.props.onHttpError;
|
|
187
|
-
if (onHttpError) {
|
|
188
|
-
onHttpError(event);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
_this.onLoadingFinish = function (event) {
|
|
192
|
-
var _a = _this.props, onLoad = _a.onLoad, onLoadEnd = _a.onLoadEnd;
|
|
193
|
-
if (onLoad) {
|
|
194
|
-
onLoad(event);
|
|
195
|
-
}
|
|
196
|
-
if (onLoadEnd) {
|
|
197
|
-
onLoadEnd(event);
|
|
198
|
-
}
|
|
199
|
-
_this.setState({
|
|
200
|
-
viewState: 'IDLE'
|
|
201
|
-
});
|
|
202
|
-
_this.updateNavigationState(event);
|
|
203
|
-
};
|
|
204
|
-
_this.onMessage = function (event) {
|
|
205
|
-
var onMessage = _this.props.onMessage;
|
|
206
|
-
if (onMessage) {
|
|
207
|
-
onMessage(event);
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
_this.onLoadingProgress = function (event) {
|
|
211
|
-
var onLoadProgress = _this.props.onLoadProgress;
|
|
212
|
-
if (onLoadProgress) {
|
|
213
|
-
onLoadProgress(event);
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
_this.onShouldStartLoadWithRequestCallback = function (shouldStart, _url, lockIdentifier) {
|
|
217
|
-
var viewManager = (_this.props.nativeConfig && _this.props.nativeConfig.viewManager)
|
|
218
|
-
|| RNCWebViewManager;
|
|
219
|
-
viewManager.startLoadWithResult(!!shouldStart, lockIdentifier);
|
|
220
|
-
};
|
|
221
|
-
_this.onContentProcessDidTerminate = function (event) {
|
|
222
|
-
var onContentProcessDidTerminate = _this.props.onContentProcessDidTerminate;
|
|
223
|
-
if (onContentProcessDidTerminate) {
|
|
224
|
-
onContentProcessDidTerminate(event);
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
return _this;
|
|
72
|
+
var useWarnIfChanges = function (value, name) {
|
|
73
|
+
var ref = useRef(value);
|
|
74
|
+
if (ref.current !== value) {
|
|
75
|
+
console.warn("Changes to property ".concat(name, " do nothing after the initial render."));
|
|
76
|
+
ref.current = value;
|
|
228
77
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
|
|
78
|
+
};
|
|
79
|
+
var WebViewComponent = forwardRef(function (_a, ref) {
|
|
80
|
+
var _b = _a.javaScriptEnabled, javaScriptEnabled = _b === void 0 ? true : _b, _c = _a.cacheEnabled, cacheEnabled = _c === void 0 ? true : _c, _d = _a.originWhitelist, originWhitelist = _d === void 0 ? defaultOriginWhitelist : _d, _e = _a.useSharedProcessPool, useSharedProcessPool = _e === void 0 ? true : _e, _f = _a.textInteractionEnabled, textInteractionEnabled = _f === void 0 ? true : _f, injectedJavaScript = _a.injectedJavaScript, injectedJavaScriptBeforeContentLoaded = _a.injectedJavaScriptBeforeContentLoaded, _g = _a.injectedJavaScriptForMainFrameOnly, injectedJavaScriptForMainFrameOnly = _g === void 0 ? true : _g, _h = _a.injectedJavaScriptBeforeContentLoadedForMainFrameOnly, injectedJavaScriptBeforeContentLoadedForMainFrameOnly = _h === void 0 ? true : _h, startInLoadingState = _a.startInLoadingState, onNavigationStateChange = _a.onNavigationStateChange, onLoadStart = _a.onLoadStart, onError = _a.onError, onLoad = _a.onLoad, onLoadEnd = _a.onLoadEnd, onLoadProgress = _a.onLoadProgress, onContentProcessDidTerminateProp = _a.onContentProcessDidTerminate, onFileDownload = _a.onFileDownload, onHttpErrorProp = _a.onHttpError, onMessageProp = _a.onMessage, renderLoading = _a.renderLoading, renderError = _a.renderError, style = _a.style, containerStyle = _a.containerStyle, source = _a.source, nativeConfig = _a.nativeConfig, allowsInlineMediaPlayback = _a.allowsInlineMediaPlayback, allowsAirPlayForMediaPlayback = _a.allowsAirPlayForMediaPlayback, mediaPlaybackRequiresUserAction = _a.mediaPlaybackRequiresUserAction, dataDetectorTypes = _a.dataDetectorTypes, incognito = _a.incognito, decelerationRateProp = _a.decelerationRate, onShouldStartLoadWithRequestProp = _a.onShouldStartLoadWithRequest, otherProps = __rest(_a, ["javaScriptEnabled", "cacheEnabled", "originWhitelist", "useSharedProcessPool", "textInteractionEnabled", "injectedJavaScript", "injectedJavaScriptBeforeContentLoaded", "injectedJavaScriptForMainFrameOnly", "injectedJavaScriptBeforeContentLoadedForMainFrameOnly", "startInLoadingState", "onNavigationStateChange", "onLoadStart", "onError", "onLoad", "onLoadEnd", "onLoadProgress", "onContentProcessDidTerminate", "onFileDownload", "onHttpError", "onMessage", "renderLoading", "renderError", "style", "containerStyle", "source", "nativeConfig", "allowsInlineMediaPlayback", "allowsAirPlayForMediaPlayback", "mediaPlaybackRequiresUserAction", "dataDetectorTypes", "incognito", "decelerationRate", "onShouldStartLoadWithRequest"]);
|
|
81
|
+
var webViewRef = useRef(null);
|
|
82
|
+
var onShouldStartLoadWithRequestCallback = useCallback(function (shouldStart, _url, lockIdentifier) {
|
|
83
|
+
if (lockIdentifier === void 0) { lockIdentifier = 0; }
|
|
84
|
+
var viewManager = (nativeConfig === null || nativeConfig === void 0 ? void 0 : nativeConfig.viewManager)
|
|
85
|
+
|| RNCWebViewManager;
|
|
86
|
+
viewManager.startLoadWithResult(!!shouldStart, lockIdentifier);
|
|
87
|
+
}, [nativeConfig === null || nativeConfig === void 0 ? void 0 : nativeConfig.viewManager]);
|
|
88
|
+
var _j = useWebWiewLogic({
|
|
89
|
+
onNavigationStateChange: onNavigationStateChange,
|
|
90
|
+
onLoad: onLoad,
|
|
91
|
+
onError: onError,
|
|
92
|
+
onHttpErrorProp: onHttpErrorProp,
|
|
93
|
+
onLoadEnd: onLoadEnd,
|
|
94
|
+
onLoadProgress: onLoadProgress,
|
|
95
|
+
onLoadStart: onLoadStart,
|
|
96
|
+
onMessageProp: onMessageProp,
|
|
97
|
+
startInLoadingState: startInLoadingState,
|
|
98
|
+
originWhitelist: originWhitelist,
|
|
99
|
+
onShouldStartLoadWithRequestProp: onShouldStartLoadWithRequestProp,
|
|
100
|
+
onShouldStartLoadWithRequestCallback: onShouldStartLoadWithRequestCallback,
|
|
101
|
+
onContentProcessDidTerminateProp: onContentProcessDidTerminateProp
|
|
102
|
+
}), onLoadingStart = _j.onLoadingStart, onShouldStartLoadWithRequest = _j.onShouldStartLoadWithRequest, onMessage = _j.onMessage, viewState = _j.viewState, setViewState = _j.setViewState, lastErrorEvent = _j.lastErrorEvent, onHttpError = _j.onHttpError, onLoadingError = _j.onLoadingError, onLoadingFinish = _j.onLoadingFinish, onLoadingProgress = _j.onLoadingProgress, onContentProcessDidTerminate = _j.onContentProcessDidTerminate;
|
|
103
|
+
useImperativeHandle(ref, function () { return ({
|
|
104
|
+
goForward: function () { return Commands.goForward(webViewRef.current); },
|
|
105
|
+
goBack: function () { return Commands.goBack(webViewRef.current); },
|
|
106
|
+
reload: function () {
|
|
107
|
+
setViewState('LOADING');
|
|
108
|
+
Commands.reload(webViewRef.current);
|
|
109
|
+
},
|
|
110
|
+
stopLoading: function () { return Commands.stopLoading(webViewRef.current); },
|
|
111
|
+
postMessage: function (data) { return Commands.postMessage(webViewRef.current, data); },
|
|
112
|
+
injectJavaScript: function (data) { return Commands.injectJavaScript(webViewRef.current, data); },
|
|
113
|
+
requestFocus: function () { return Commands.requestFocus(webViewRef.current); }
|
|
114
|
+
}); }, [setViewState, webViewRef]);
|
|
115
|
+
useWarnIfChanges(allowsInlineMediaPlayback, 'allowsInlineMediaPlayback');
|
|
116
|
+
useWarnIfChanges(allowsAirPlayForMediaPlayback, 'allowsAirPlayForMediaPlayback');
|
|
117
|
+
useWarnIfChanges(incognito, 'incognito');
|
|
118
|
+
useWarnIfChanges(mediaPlaybackRequiresUserAction, 'mediaPlaybackRequiresUserAction');
|
|
119
|
+
useWarnIfChanges(dataDetectorTypes, 'dataDetectorTypes');
|
|
120
|
+
var otherView = null;
|
|
121
|
+
if (viewState === 'LOADING') {
|
|
122
|
+
otherView = (renderLoading || defaultRenderLoading)();
|
|
123
|
+
}
|
|
124
|
+
else if (viewState === 'ERROR') {
|
|
125
|
+
invariant(lastErrorEvent != null, 'lastErrorEvent expected to be non-null');
|
|
126
|
+
otherView = (renderError || defaultRenderError)(lastErrorEvent.domain, lastErrorEvent.code, lastErrorEvent.description);
|
|
127
|
+
}
|
|
128
|
+
else if (viewState !== 'IDLE') {
|
|
129
|
+
console.error("RNCWebView invalid state encountered: ".concat(viewState));
|
|
130
|
+
}
|
|
131
|
+
var webViewStyles = [styles.container, styles.webView, style];
|
|
132
|
+
var webViewContainerStyle = [styles.container, containerStyle];
|
|
133
|
+
var decelerationRate = processDecelerationRate(decelerationRateProp);
|
|
134
|
+
var NativeWebView = (nativeConfig === null || nativeConfig === void 0 ? void 0 : nativeConfig.component)
|
|
135
|
+
|| RNCWebView;
|
|
136
|
+
var webView = (<NativeWebView key="webViewKey" {...otherProps} javaScriptEnabled={javaScriptEnabled} cacheEnabled={cacheEnabled} useSharedProcessPool={useSharedProcessPool} textInteractionEnabled={textInteractionEnabled} decelerationRate={decelerationRate} messagingEnabled={typeof onMessageProp === 'function'} onLoadingError={onLoadingError} onLoadingFinish={onLoadingFinish} onLoadingProgress={onLoadingProgress} onFileDownload={onFileDownload} onLoadingStart={onLoadingStart} onHttpError={onHttpError} onMessage={onMessage} onShouldStartLoadWithRequest={onShouldStartLoadWithRequest} onContentProcessDidTerminate={onContentProcessDidTerminate} injectedJavaScript={injectedJavaScript} injectedJavaScriptBeforeContentLoaded={injectedJavaScriptBeforeContentLoaded} injectedJavaScriptForMainFrameOnly={injectedJavaScriptForMainFrameOnly} injectedJavaScriptBeforeContentLoadedForMainFrameOnly={injectedJavaScriptBeforeContentLoadedForMainFrameOnly} dataDetectorTypes={dataDetectorTypes} allowsAirPlayForMediaPlayback={allowsAirPlayForMediaPlayback} allowsInlineMediaPlayback={allowsInlineMediaPlayback} incognito={incognito} mediaPlaybackRequiresUserAction={mediaPlaybackRequiresUserAction} ref={webViewRef}
|
|
137
|
+
// TODO: find a better way to type this.
|
|
138
|
+
source={resolveAssetSource(source)} style={webViewStyles} {...nativeConfig === null || nativeConfig === void 0 ? void 0 : nativeConfig.props}/>);
|
|
139
|
+
return (<View style={webViewContainerStyle}>
|
|
140
|
+
{webView}
|
|
141
|
+
{otherView}
|
|
142
|
+
</View>);
|
|
143
|
+
});
|
|
144
|
+
// no native implementation for iOS, depends only on permissions
|
|
145
|
+
var isFileUploadSupported = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
146
|
+
return [2 /*return*/, true];
|
|
147
|
+
}); }); };
|
|
148
|
+
var WebView = Object.assign(WebViewComponent, { isFileUploadSupported: isFileUploadSupported });
|
|
284
149
|
export default WebView;
|
package/lib/WebView.js
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
3
|
// This "dummy" WebView is to render something for unsupported platforms,
|
|
4
|
-
// like for example Expo SDK "web" platform.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
borderColor: 'rgb(255, 0, 0)',
|
|
11
|
-
borderWidth: 1
|
|
12
|
-
}}
|
|
13
|
-
/>
|
|
14
|
-
);
|
|
4
|
+
// like for example Expo SDK "web" platform.
|
|
5
|
+
var WebView = function () { return (<View style={{ alignSelf: 'flex-start' }}>
|
|
6
|
+
<Text style={{ color: 'red' }}>
|
|
7
|
+
React Native WebView does not support this platform.
|
|
8
|
+
</Text>
|
|
9
|
+
</View>); };
|
|
15
10
|
export { WebView };
|
|
16
11
|
export default WebView;
|
package/lib/WebView.macos.d.ts
CHANGED
|
@@ -1,83 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
cacheEnabled: boolean;
|
|
7
|
-
originWhitelist: string[];
|
|
8
|
-
useSharedProcessPool: boolean;
|
|
9
|
-
};
|
|
10
|
-
static isFileUploadSupported: () => Promise<boolean>;
|
|
11
|
-
state: State;
|
|
12
|
-
webViewRef: React.RefObject<NativeWebViewMacOS>;
|
|
13
|
-
getCommands: () => {
|
|
14
|
-
goForward: number;
|
|
15
|
-
goBack: number;
|
|
16
|
-
reload: number;
|
|
17
|
-
stopLoading: number;
|
|
18
|
-
postMessage: number;
|
|
19
|
-
injectJavaScript: number;
|
|
20
|
-
loadUrl: number;
|
|
21
|
-
requestFocus: number;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Go forward one page in the web view's history.
|
|
25
|
-
*/
|
|
26
|
-
goForward: () => void;
|
|
27
|
-
/**
|
|
28
|
-
* Go back one page in the web view's history.
|
|
29
|
-
*/
|
|
30
|
-
goBack: () => void;
|
|
31
|
-
/**
|
|
32
|
-
* Reloads the current page.
|
|
33
|
-
*/
|
|
34
|
-
reload: () => void;
|
|
35
|
-
/**
|
|
36
|
-
* Stop loading the current page.
|
|
37
|
-
*/
|
|
38
|
-
stopLoading: () => void;
|
|
39
|
-
/**
|
|
40
|
-
* Request focus on WebView rendered page.
|
|
41
|
-
*/
|
|
42
|
-
requestFocus: () => void;
|
|
43
|
-
/**
|
|
44
|
-
* Posts a message to the web view, which will emit a `message` event.
|
|
45
|
-
* Accepts one argument, `data`, which must be a string.
|
|
46
|
-
*
|
|
47
|
-
* In your webview, you'll need to something like the following.
|
|
48
|
-
*
|
|
49
|
-
* ```js
|
|
50
|
-
* document.addEventListener('message', e => { document.title = e.data; });
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
postMessage: (data: string) => void;
|
|
54
|
-
/**
|
|
55
|
-
* Injects a javascript string into the referenced WebView. Deliberately does not
|
|
56
|
-
* return a response because using eval() to return a response breaks this method
|
|
57
|
-
* on pages with a Content Security Policy that disallows eval(). If you need that
|
|
58
|
-
* functionality, look into postMessage/onMessage.
|
|
59
|
-
*/
|
|
60
|
-
injectJavaScript: (data: string) => void;
|
|
61
|
-
/**
|
|
62
|
-
* We return an event with a bunch of fields including:
|
|
63
|
-
* url, title, loading, canGoBack, canGoForward
|
|
64
|
-
*/
|
|
65
|
-
updateNavigationState: (event: WebViewNavigationEvent) => void;
|
|
66
|
-
/**
|
|
67
|
-
* Returns the native `WebView` node.
|
|
68
|
-
*/
|
|
69
|
-
getWebViewHandle: () => number;
|
|
70
|
-
onLoadingStart: (event: WebViewNavigationEvent) => void;
|
|
71
|
-
onLoadingError: (event: WebViewErrorEvent) => void;
|
|
72
|
-
onHttpError: (event: WebViewHttpErrorEvent) => void;
|
|
73
|
-
onLoadingFinish: (event: WebViewNavigationEvent) => void;
|
|
74
|
-
onMessage: (event: WebViewMessageEvent) => void;
|
|
75
|
-
onLoadingProgress: (event: WebViewProgressEvent) => void;
|
|
76
|
-
onShouldStartLoadWithRequestCallback: (shouldStart: boolean, _url: string, lockIdentifier: number) => void;
|
|
77
|
-
onContentProcessDidTerminate: (event: WebViewTerminatedEvent) => void;
|
|
78
|
-
componentDidUpdate(prevProps: MacOSWebViewProps): void;
|
|
79
|
-
showRedboxOnPropChanges(prevProps: MacOSWebViewProps, propName: keyof MacOSWebViewProps): void;
|
|
80
|
-
render(): JSX.Element;
|
|
81
|
-
}
|
|
2
|
+
import { MacOSWebViewProps } from './WebViewTypes';
|
|
3
|
+
declare const WebView: React.ForwardRefExoticComponent<MacOSWebViewProps & React.RefAttributes<{}>> & {
|
|
4
|
+
isFileUploadSupported: () => Promise<boolean>;
|
|
5
|
+
};
|
|
82
6
|
export default WebView;
|
|
83
7
|
//# sourceMappingURL=WebView.macos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebView.macos.d.ts","sourceRoot":"","sources":["../src/WebView.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"WebView.macos.d.ts","sourceRoot":"","sources":["../src/WebView.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAkBpF,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAC;AAmKxB,QAAA,MAAM,OAAO;iCAHsB,QAAQ,OAAO,CAAC;CAGqB,CAAC;AAEzE,eAAe,OAAO,CAAC"}
|