diff --git a/android/capacitor/src/main/java/com/getcapacitor/IMessageHandler.java b/android/capacitor/src/main/java/com/getcapacitor/IMessageHandler.java new file mode 100644 index 000000000..800614c1e --- /dev/null +++ b/android/capacitor/src/main/java/com/getcapacitor/IMessageHandler.java @@ -0,0 +1,20 @@ +package com.getcapacitor; + +public interface IMessageHandler { + /** + * Posts a message to a JavaScript context. It is expected to be a stringified JSON representation + * + * @param message The stringified json to be posted. + */ + void postMessage(String message); + + /** + * Sends a response message. + * + * @param call the plugin call, which is attached to the communication + * @param successResult the result of the native execution + * @param errorResult the error, that might have occured + * + */ + void sendResponseMessage(PluginCall call, PluginResult successResult, PluginResult errorResult); +} diff --git a/android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java b/android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java index dc91c9b01..d55ab0060 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java +++ b/android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java @@ -11,7 +11,7 @@ * MessageHandler handles messages from the WebView, dispatching them * to plugins. */ -public class MessageHandler { +public class MessageHandler implements IMessageHandler { private Bridge bridge; private WebView webView; @@ -49,6 +49,7 @@ public MessageHandler(Bridge bridge, WebView webView, PluginManager cordovaPlugi */ @JavascriptInterface @SuppressWarnings("unused") + @Override public void postMessage(String jsonStr) { try { JSObject postData = new JSObject(jsonStr); @@ -98,6 +99,7 @@ public void postMessage(String jsonStr) { } } + @Override public void sendResponseMessage(PluginCall call, PluginResult successResult, PluginResult errorResult) { try { PluginResult data = new PluginResult(); diff --git a/android/capacitor/src/main/java/com/getcapacitor/PluginCall.java b/android/capacitor/src/main/java/com/getcapacitor/PluginCall.java index 7308f0712..63328eb37 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/PluginCall.java +++ b/android/capacitor/src/main/java/com/getcapacitor/PluginCall.java @@ -19,7 +19,7 @@ public class PluginCall { */ public static final String CALLBACK_ID_DANGLING = "-1"; - private final MessageHandler msgHandler; + private final IMessageHandler msgHandler; private final String pluginId; private final String callbackId; private final String methodName; @@ -33,7 +33,7 @@ public class PluginCall { @Deprecated private boolean isReleased = false; - public PluginCall(MessageHandler msgHandler, String pluginId, String callbackId, String methodName, JSObject data) { + public PluginCall(IMessageHandler msgHandler, String pluginId, String callbackId, String methodName, JSObject data) { this.msgHandler = msgHandler; this.pluginId = pluginId; this.callbackId = callbackId;