diff --git a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java index c434247a2..24149aac1 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java +++ b/android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java @@ -97,6 +97,7 @@ public void onReceivedHttpError(WebView view, WebResourceRequest request, WebRes @Override public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) { super.onRenderProcessGone(view, detail); + boolean result = false; List webViewListeners = bridge.getWebViewListeners(); @@ -106,6 +107,18 @@ public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) } } + if (!result) { + // If no one handled it, handle it ourselves! + + view.post(() -> { + Toast.makeText(view.getContext(), "Reloading due to low memory issue", Toast.LENGTH_SHORT).show(); + }); + + view.reload(); // Safely reload WebView + + return true; + } + return result; } }