From 95fc02439014b556396f7c6a19667ac0bba0659a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20Unneb=C3=A4ck?= Date: Tue, 24 Jul 2018 15:15:55 +0100 Subject: [PATCH] Use evaluateJavascript for injecting JavaScript on 4.4+ --- .../react/views/webview/ReactWebViewManager.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 420392a80c0c..ea6a41c2708a 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 @@ -329,7 +329,11 @@ public void callInjectedJavaScript() { if (getSettings().getJavaScriptEnabled() && injectedJS != null && !TextUtils.isEmpty(injectedJS)) { - loadUrl("javascript:(function() {\n" + injectedJS + ";\n})();"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + evaluateJavascript("(function() {\n" + injectedJS + ";\n})();", null); + } else { + loadUrl("javascript:(function() {\n" + injectedJS + ";\n})();"); + } } } @@ -660,7 +664,11 @@ public void receiveCommand(WebView root, int commandId, @Nullable ReadableArray } break; case COMMAND_INJECT_JAVASCRIPT: - root.loadUrl("javascript:" + args.getString(0)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + root.evaluateJavascript(args.getString(0), null); + } else { + root.loadUrl("javascript:" + args.getString(0)); + } break; } }