diff --git a/android/src/main/java/com/reactnativecommunity/webview/RCTWebViewManager.java b/android/src/main/java/com/reactnativecommunity/webview/RCTWebViewManager.java index f26f1d3..06cb3d0 100644 --- a/android/src/main/java/com/reactnativecommunity/webview/RCTWebViewManager.java +++ b/android/src/main/java/com/reactnativecommunity/webview/RCTWebViewManager.java @@ -589,6 +589,13 @@ public class RCTWebViewManager extends SimpleViewManager { } } + @ReactProp(name = "allowFileAccess") + public void setAllowFileAccess( + WebView view, + @Nullable Boolean allowFileAccess) { + view.getSettings().setAllowFileAccess(allowFileAccess != null && allowFileAccess); + } + @ReactProp(name = "geolocationEnabled") public void setGeolocationEnabled( WebView view, diff --git a/js/WebView.android.js b/js/WebView.android.js index d2c8338..2e38c1b 100644 --- a/js/WebView.android.js +++ b/js/WebView.android.js @@ -67,6 +67,7 @@ class WebView extends React.Component { javaScriptEnabled: true, thirdPartyCookiesEnabled: true, scalesPageToFit: true, + allowFileAccess: false, saveFormDataDisabled: false, originWhitelist: WebViewShared.defaultOriginWhitelist, }; @@ -143,6 +144,7 @@ class WebView extends React.Component { style={webViewStyles} source={resolveAssetSource(source)} scalesPageToFit={this.props.scalesPageToFit} + allowFileAccess={this.props.allowFileAccess} injectedJavaScript={this.props.injectedJavaScript} userAgent={this.props.userAgent} javaScriptEnabled={this.props.javaScriptEnabled} diff --git a/js/WebViewTypes.js b/js/WebViewTypes.js index ca3e31e..5731787 100644 --- a/js/WebViewTypes.js +++ b/js/WebViewTypes.js @@ -232,6 +232,12 @@ export type AndroidWebViewProps = $ReadOnly<{| */ allowUniversalAccessFromFileURLs?: ?boolean, + /** + * Sets whether the webview allow access to file system. + * @platform android + */ + allowFileAccess?: ?boolean, + /** * Used on Android only, controls whether form autocomplete data should be saved * @platform android