diff --git a/Examples/UIExplorer/WebViewExample.js b/Examples/UIExplorer/WebViewExample.js index c8c547f97..ce489effe 100644 --- a/Examples/UIExplorer/WebViewExample.js +++ b/Examples/UIExplorer/WebViewExample.js @@ -95,6 +95,7 @@ var WebViewExample = React.createClass({ style={styles.webView} url={this.state.url} javaScriptEnabledAndroid={true} + domStorageEnabledAndroid={true} onNavigationStateChange={this.onNavigationStateChange} onShouldStartLoadWithRequest={this.onShouldStartLoadWithRequest} startInLoadingState={true} diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index f4bc52045..7b227aef3 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -38,7 +38,7 @@ var WebView = React.createClass({ propTypes: { ...View.propTypes, - renderError: PropTypes.func, + renderError: PropTypes.func, renderLoading: PropTypes.func, url: PropTypes.string, html: PropTypes.string, @@ -54,6 +54,12 @@ var WebView = React.createClass({ */ javaScriptEnabledAndroid: PropTypes.bool, + /** + * Used on Android only, controls whether DOM Storage is enabled or not + * @platform android + */ + domStorageEnabledAndroid: PropTypes.bool, + /** * Sets the JS to be injected when the webpage loads. */ @@ -117,6 +123,7 @@ var WebView = React.createClass({ injectedJavaScript={this.props.injectedJavaScript} userAgent={this.props.userAgent} javaScriptEnabledAndroid={this.props.javaScriptEnabledAndroid} + domStorageEnabledAndroid={this.props.domStorageEnabledAndroid} contentInset={this.props.contentInset} automaticallyAdjustContentInsets={this.props.automaticallyAdjustContentInsets} onLoadingStart={this.onLoadingStart} diff --git a/Libraries/Components/WebView/WebView.ios.js b/Libraries/Components/WebView/WebView.ios.js index a51ed3fce..6713c84c9 100644 --- a/Libraries/Components/WebView/WebView.ios.js +++ b/Libraries/Components/WebView/WebView.ios.js @@ -116,6 +116,12 @@ var WebView = React.createClass({ */ javaScriptEnabledAndroid: PropTypes.bool, + /** + * Used on Android only, controls whether DOM Storage is enabled or not + * @platform android + */ + domStorageEnabledAndroid: PropTypes.bool, + /** * Sets the JS to be injected when the webpage loads. */ 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 a8eb4d65b..57c2d09e3 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 @@ -256,6 +256,11 @@ public class ReactWebViewManager extends SimpleViewManager { view.getSettings().setJavaScriptEnabled(enabled); } + @ReactProp(name = "domStorageEnabledAndroid") + public void setDomStorageEnabled(WebView view, boolean enabled) { + view.getSettings().setDomStorageEnabled(enabled); + } + @ReactProp(name = "userAgent") public void setUserAgent(WebView view, @Nullable String userAgent) { if (userAgent != null) {