@@ -3,13 +3,9 @@ import * as React from 'react';
3
3
import { View , StyleSheet , Linking } from 'react-native' ;
4
4
import { WebView } from 'react-native-webview' ;
5
5
import { bundleUrl } from '../api' ;
6
- import type {
7
- WebViewErrorEvent ,
8
- WebViewMessageEvent ,
9
- WebViewRenderProcessGoneEvent ,
10
- } from 'react-native-webview/lib/WebViewTypes' ;
6
+ import type { WebViewMessageEvent } from 'react-native-webview/lib/WebViewTypes' ;
11
7
import ErrorBoundary from '../ErrorBoundary' ;
12
- import * as Errors from '../services/Errors ' ;
8
+ import { webviewErrorHandler } from './webviewErrorHandler ' ;
13
9
14
10
const handleShouldStartLoadWithRequest = ( request : any ) => {
15
11
// Intercept URL loading
@@ -57,20 +53,20 @@ function BundleComponent({
57
53
< View style = { styles . webViewContainer } >
58
54
< WebView
59
55
ref = { ( r : any ) => ( webview . current = r ) }
60
- source = { { uri : bundleUrl ( bundleId , sku ) } }
56
+ source = { {
57
+ uri : bundleUrl ( bundleId , sku ) ,
58
+ // There's no way to unit test Webview. So uncomment the following lines to test manually
59
+ // uri: 'https://wrongdomainlol.io',
60
+ // uri: 'https://staging.provenance.org/webviews/123/123',
61
+ } }
61
62
style = { { flex : 1 } }
62
63
startInLoadingState = { true }
63
64
nestedScrollEnabled = { true }
64
- onError = { ( syntheticEvent : WebViewErrorEvent ) => {
65
- const { nativeEvent } = syntheticEvent ;
66
- Errors . handle ( `WebView error: ${ nativeEvent } ` ) ;
67
- } }
68
- onRenderProcessGone = { (
69
- syntheticEvent : WebViewRenderProcessGoneEvent
70
- ) => {
71
- const { nativeEvent } = syntheticEvent ;
72
- Errors . handle ( `WebView crashed: ${ nativeEvent . didCrash } ` ) ;
73
- } }
65
+ onError = { webviewErrorHandler ( 'WebViewErrorEvent' ) }
66
+ onHttpError = { webviewErrorHandler ( 'WebViewHttpErrorEvent' ) }
67
+ onRenderProcessGone = { webviewErrorHandler (
68
+ 'WebViewRenderProcessGoneEvent'
69
+ ) }
74
70
injectedJavaScript = { `
75
71
window.ReactNativeWebView.postMessage("JS injected");
76
72
0 commit comments