|
@@ -0,0 +1,53 @@
|
|
1
|
+import PropTypes from 'prop-types';
|
|
2
|
+
|
|
3
|
+import { ViewPropTypes, WebView } from 'react-native';
|
|
4
|
+
|
|
5
|
+export const commonPropTypes = {
|
|
6
|
+ style: ViewPropTypes.style,
|
|
7
|
+ onNavigationStateChange: PropTypes.func,
|
|
8
|
+ customScript: PropTypes.string,
|
|
9
|
+ customStyle: PropTypes.string,
|
|
10
|
+ enableAnimation: PropTypes.bool,
|
|
11
|
+ // only works on enable animation
|
|
12
|
+ animationDuration: PropTypes.number,
|
|
13
|
+ // offset of rn webView margin
|
|
14
|
+ heightOffset: PropTypes.number,
|
|
15
|
+ // either height or width updated will trigger this
|
|
16
|
+ // no support auto width and height will triggered by source changing only on android 6.0 or below version
|
|
17
|
+ onSizeUpdated: PropTypes.func,
|
|
18
|
+ // 'file:///android_asset/web/' by default on android,
|
|
19
|
+ // web/' by default on iOS
|
|
20
|
+ baseUrl: PropTypes.string,
|
|
21
|
+ // add baseUrl/files... to android/app/src/assets/ on android
|
|
22
|
+ // add baseUrl/files... to project root on iOS
|
|
23
|
+ files: PropTypes.arrayOf(
|
|
24
|
+ PropTypes.shape({
|
|
25
|
+ href: PropTypes.string,
|
|
26
|
+ type: PropTypes.string,
|
|
27
|
+ rel: PropTypes.string
|
|
28
|
+ })
|
|
29
|
+ ),
|
|
30
|
+ // if set to true may cause some layout issues (smaller font size) on iOS
|
|
31
|
+ // if set to false may cause some layout issues (width of container will be than width of screen) on android
|
|
32
|
+ scalesPageToFit: PropTypes.bool,
|
|
33
|
+ // other rn webview props
|
|
34
|
+ source: WebView.propTypes.source,
|
|
35
|
+ originWhitelist: PropTypes.arrayOf(PropTypes.string),
|
|
36
|
+ mediaPlaybackRequiresUserAction: PropTypes.bool,
|
|
37
|
+ renderError: PropTypes.func,
|
|
38
|
+ onError: PropTypes.func,
|
|
39
|
+ onMessage: PropTypes.func,
|
|
40
|
+ onLoad: PropTypes.func,
|
|
41
|
+ onLoadStart: PropTypes.func,
|
|
42
|
+ onLoadEnd: PropTypes.func
|
|
43
|
+};
|
|
44
|
+
|
|
45
|
+export const androidPropTypes = {
|
|
46
|
+ ...commonPropTypes,
|
|
47
|
+ domStorageEnabled: PropTypes.bool,
|
|
48
|
+ thirdPartyCookiesEnabled: PropTypes.bool,
|
|
49
|
+ userAgent: PropTypes.string,
|
|
50
|
+ geolocationEnabled: PropTypes.string,
|
|
51
|
+ allowUniversalAccessFromFileURLs: PropTypes.bool,
|
|
52
|
+ mixedContentMode: PropTypes.oneOf(['never', 'always', 'compatibility'])
|
|
53
|
+};
|