diff --git a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java index c560cc90..77c12327 100644 --- a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java +++ b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java @@ -178,6 +178,17 @@ public void setInjectedOnStartLoadingJavaScript(WebView view, @Nullable String i ((ReactWebView) view).setInjectedOnStartLoadingJavaScript(injectedJavaScript); } + @ReactProp(name = "localStorageEnabled") + public void setLocalStorageEnabled(WebView view, boolean enabled) { + if (enabled) { + view.getSettings().setDomStorageEnabled(true); + view.getSettings().setDatabaseEnabled(true); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { + view.getSettings().setDatabasePath("/data/data/" + view.getContext().getPackageName() + "/databases/"); + } + } + } + @Override protected void addEventEmitters(ThemedReactContext reactContext, WebView view) { // Do not register default touch emitter and let WebView implementation handle touches diff --git a/webview-bridge/index.android.js b/webview-bridge/index.android.js index 7133cf40..3e43ee03 100644 --- a/webview-bridge/index.android.js +++ b/webview-bridge/index.android.js @@ -59,6 +59,8 @@ var WebViewBridge = React.createClass({ onBridgeMessage: PropTypes.func, injectedOnStartLoadingJavaScript: PropTypes.string, + + localStorageEnabled: PropTypes.bool, }, getInitialState: function() {