Skip to content

Commit dd8067b

Browse files
committed
expose additional properties for file:// resources
properties pass-thru to Android WebView
1 parent 876df04 commit dd8067b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.facebook.react.bridge.ReadableArray;
66
import com.facebook.react.uimanager.ThemedReactContext;
77
import com.facebook.react.views.webview.ReactWebViewManager;
8+
import com.facebook.react.uimanager.annotations.ReactProp;
89

910
import java.util.ArrayList;
1011
import java.util.Map;
@@ -37,8 +38,6 @@ Map<String, Integer> getCommandsMap() {
3738
@Override
3839
protected WebView createViewInstance(ThemedReactContext reactContext) {
3940
WebView root = super.createViewInstance(reactContext);
40-
root.getSettings().setAllowFileAccessFromFileURLs(true);
41-
root.getSettings().setAllowUniversalAccessFromFileURLs(true);
4241
root.addJavascriptInterface(new JavascriptBridge(root), "WebViewBridge");
4342
return root;
4443
}
@@ -70,4 +69,14 @@ static private void evaluateJavascript(WebView root, String javascript) {
7069
root.loadUrl("javascript:" + javascript);
7170
}
7271
}
72+
73+
@ReactProp(name = "allowFileAccessFromFileURLs")
74+
public void setAllowFileAccessFromFileURLs(WebView root, boolean allows) {
75+
root.getSettings().setAllowFileAccessFromFileURLs(allows);
76+
}
77+
78+
@ReactProp(name = "allowUniversalAccessFromFileURLs")
79+
public void setAllowUniversalAccessFromFileURLs(WebView root, boolean allows) {
80+
root.getSettings().setAllowUniversalAccessFromFileURLs(allows);
81+
}
7382
}

webview-bridge/index.android.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,15 @@ var WebViewBridgeState = keyMirror({
4343
ERROR: null,
4444
});
4545

46+
var RCTWebViewBridge = requireNativeComponent('RCTWebViewBridge', WebViewBridge);
47+
4648
/**
4749
* Renders a native WebView.
4850
*/
4951
var WebViewBridge = React.createClass({
5052

5153
propTypes: {
52-
...WebView.propTypes,
54+
...RCTWebViewBridge.propTypes,
5355

5456
/**
5557
* Will be called once the message is being sent from webview
@@ -217,7 +219,6 @@ var WebViewBridge = React.createClass({
217219
},
218220
});
219221

220-
var RCTWebViewBridge = requireNativeComponent('RCTWebViewBridge', WebViewBridge);
221222

222223
var styles = StyleSheet.create({
223224
container: {

0 commit comments

Comments
 (0)