diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index 8bb6d8288..4617b2cb6 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -152,6 +152,14 @@ class WebView extends React.Component { * start playing. The default value is `false`. */ mediaPlaybackRequiresUserAction: PropTypes.bool, + + /** + * Boolean that sets whether JavaScript running in the context of a file + * scheme URL should be allowed to access content from any origin. + * Including accessing content from other file scheme URLs + * @platform android + */ + allowUniversalAccessFromFileURLs: PropTypes.bool, }; static defaultProps = { @@ -227,6 +235,7 @@ class WebView extends React.Component { onLoadingError={this.onLoadingError} testID={this.props.testID} mediaPlaybackRequiresUserAction={this.props.mediaPlaybackRequiresUserAction} + allowUniversalAccessFromFileURLs={this.props.allowUniversalAccessFromFileURLs} />; return ( diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index 20951b621..df061a734 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -375,6 +375,11 @@ public class ReactWebViewManager extends SimpleViewManager { view.getSettings().setMediaPlaybackRequiresUserGesture(requires); } + @ReactProp(name = "allowUniversalAccessFromFileURLs") + public void setAllowUniversalAccessFromFileURLs(WebView view, boolean allow) { + view.getSettings().setAllowUniversalAccessFromFileURLs(allow); + } + @ReactProp(name = "injectedJavaScript") public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScript) { ((ReactWebView) view).setInjectedJavaScript(injectedJavaScript);