123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
-
-
- 'use strict';
-
- import type { Node, Element, ComponentType } from 'react';
-
- import type { SyntheticEvent } from 'CoreEventTypes';
- import type { EdgeInsetsProp } from 'EdgeInsetsPropType';
- import type { ViewStyleProp } from 'StyleSheet';
- import type { ViewProps } from 'ViewPropTypes';
-
- export type WebViewNativeEvent = $ReadOnly<{|
- url: string,
- loading: boolean,
- title: string,
- canGoBack: boolean,
- canGoForward: boolean,
- lockIdentifier: number,
- |}>;
-
- export type WebViewProgressEvent = $ReadOnly<{|
- ...WebViewNativeEvent,
- progress: number,
- |}>;
-
- export type WebViewNavigation = $ReadOnly<{|
- ...WebViewNativeEvent,
- navigationType:
- | 'click'
- | 'formsubmit'
- | 'backforward'
- | 'reload'
- | 'formresubmit'
- | 'other',
- |}>;
-
- export type WebViewMessage = $ReadOnly<{|
- ...WebViewNativeEvent,
- data: string,
- |}>;
-
- export type WebViewError = $ReadOnly<{|
- ...WebViewNativeEvent,
-
-
- domain: ?string,
- code: number,
- description: string,
- |}>;
-
- export type WebViewEvent = SyntheticEvent<WebViewNativeEvent>;
-
- export type WebViewNavigationEvent = SyntheticEvent<WebViewNavigation>;
-
- export type WebViewMessageEvent = SyntheticEvent<WebViewMessage>;
-
- export type WebViewErrorEvent = SyntheticEvent<WebViewError>;
-
- export type DataDetectorTypes =
- | 'phoneNumber'
- | 'link'
- | 'address'
- | 'calendarEvent'
- | 'trackingNumber'
- | 'flightNumber'
- | 'lookupSuggestion'
- | 'none'
- | 'all';
-
- export type OverScrollModeType = 'always' | 'content' | 'never';
-
- export type WebViewSourceUri = $ReadOnly<{|
-
-
- uri?: ?string,
-
-
-
- method?: string,
-
-
-
- headers?: Object,
-
-
-
- body?: string,
- |}>;
-
- export type WebViewSourceHtml = $ReadOnly<{|
-
-
- html?: ?string,
-
-
- baseUrl?: ?string,
- |}>;
-
- export type WebViewSource = WebViewSourceUri | WebViewSourceHtml;
-
- export type WebViewNativeConfig = $ReadOnly<{|
-
-
- component?: ComponentType<WebViewSharedProps>,
-
-
- props?: ?Object,
-
-
- viewManager?: ?Object,
- |}>;
-
- export type OnShouldStartLoadWithRequest = (
- event: WebViewNavigation,
- ) => boolean;
-
- export type IOSWebViewProps = $ReadOnly<{|
-
-
- useWebKit?: ?boolean,
-
-
-
- bounces?: ?boolean,
-
-
-
- decelerationRate?: ?('fast' | 'normal' | number),
-
-
-
- scrollEnabled?: ?boolean,
-
-
-
- pagingEnabled?: ?boolean,
-
-
-
- contentInset?: ?EdgeInsetsProp,
-
-
-
- dataDetectorTypes?: ?DataDetectorTypes | $ReadOnlyArray<DataDetectorTypes>,
-
-
-
- allowsInlineMediaPlayback?: ?boolean,
-
-
- hideKeyboardAccessoryView?: ?boolean,
-
-
- allowsBackForwardNavigationGestures?: ?boolean,
-
-
- useSharedProcessPool?: ?boolean,
-
-
- userAgent?: ?string,
-
-
-
- allowsLinkPreview?: ?boolean,
- |}>;
-
- export type AndroidWebViewProps = $ReadOnly<{|
- onNavigationStateChange?: (event: WebViewNavigation) => mixed,
- onContentSizeChange?: (event: WebViewEvent) => mixed,
-
-
-
- overScrollMode?: ?OverScrollModeType,
-
-
-
- geolocationEnabled?: ?boolean,
-
-
-
- allowUniversalAccessFromFileURLs?: ?boolean,
-
-
-
- allowFileAccess?: ?boolean,
-
-
-
- saveFormDataDisabled?: ?boolean,
-
-
-
- urlPrefixesForDefaultIntent?: $ReadOnlyArray<string>,
-
-
-
- javaScriptEnabled?: ?boolean,
-
-
-
- androidHardwareAccelerationDisabled?: ?boolean,
-
-
-
- thirdPartyCookiesEnabled?: ?boolean,
-
-
-
- domStorageEnabled?: ?boolean,
-
-
-
- userAgent?: ?string,
-
-
-
- mixedContentMode?: ?('never' | 'always' | 'compatibility'),
- |}>;
-
- export type WebViewSharedProps = $ReadOnly<{|
- ...ViewProps,
- ...IOSWebViewProps,
- ...AndroidWebViewProps,
-
-
- url?: ?string,
-
-
- html?: ?string,
-
-
-
- source?: ?WebViewSource,
-
-
-
- incognito?: ?boolean,
-
-
-
- renderError: (
- errorDomain: ?string,
- errorCode: number,
- errorDesc: string,
- ) => Element<any>,
-
-
-
- renderLoading: () => Element<any>,
-
-
-
- onLoad: (event: WebViewNavigationEvent) => mixed,
-
-
-
- onLoadEnd: (event: WebViewNavigationEvent | WebViewErrorEvent) => mixed,
-
-
-
- onLoadStart: (event: WebViewNavigationEvent) => mixed,
-
-
-
- onError: (event: WebViewErrorEvent) => mixed,
-
-
-
- automaticallyAdjustContentInsets?: ?boolean,
-
-
-
- onNavigationStateChange?: (event: WebViewNavigation) => mixed,
-
-
-
- onMessage?: (event: WebViewMessageEvent) => mixed,
-
-
-
- onLoadProgress?: (event: WebViewProgressEvent) => mixed,
-
-
-
- startInLoadingState?: ?boolean,
-
-
-
- injectedJavaScript?: ?string,
-
-
-
- scalesPageToFit?: ?boolean,
-
-
-
- mediaPlaybackRequiresUserAction?: ?boolean,
-
-
-
- originWhitelist?: $ReadOnlyArray<string>,
-
-
-
- onShouldStartLoadWithRequest?: OnShouldStartLoadWithRequest,
-
-
-
- nativeConfig?: ?WebViewNativeConfig,
-
- style?: ViewStyleProp,
- children: Node,
- |}>;
|