diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index 005048113e2ba2..1d9e76ef64f69a 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -153,6 +153,12 @@ var WebView = React.createClass({ * start playing. The default value is `false`. */ mediaPlaybackRequiresUserAction: PropTypes.bool, + + /** + * Used on Android(5.0+), controls whether Mixed content mode is enabled or not + * @platform android + */ + mixedContentModeEnabled: PropTypes.bool, }, getInitialState: function() { @@ -167,6 +173,7 @@ var WebView = React.createClass({ return { javaScriptEnabled : true, scalesPageToFit: true, + mixedContentModeEnabled: false, }; }, @@ -229,6 +236,7 @@ var WebView = React.createClass({ onLoadingError={this.onLoadingError} testID={this.props.testID} mediaPlaybackRequiresUserAction={this.props.mediaPlaybackRequiresUserAction} + mixedContentModeEnabled={this.props.mixedContentModeEnabled} />; 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 3ed60497b8886a..db2823ee021427 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 @@ -21,6 +21,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.WebChromeClient; +import android.webkit.WebSettings; import com.facebook.react.views.webview.events.TopLoadingErrorEvent; import com.facebook.react.views.webview.events.TopLoadingFinishEvent; @@ -306,6 +307,13 @@ public void setInjectedJavaScript(WebView view, @Nullable String injectedJavaScr ((ReactWebView) view).setInjectedJavaScript(injectedJavaScript); } + @ReactProp(name = "mixedContentModeEnabled") + public void setMixedContentModeEnabled(WebView view, boolean enabled) { + if (enabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + view.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); + } + } + @ReactProp(name = "source") public void setSource(WebView view, @Nullable ReadableMap source) { if (source != null) {