You can always execute javascript from java doing this:
String js = "alert('test')";
webView.loadUrlNow("javascript:" + js);
Or you can init the plugin and keep the callback doing this
PluginResult pgRes = new PluginResult(PluginResult.Status.OK, "message");
pgRes.setKeepCallback(true);
callbackContext.sendPluginResult(pgRes);
Added example provided by Sephy
private String myCbkId;
// Store callbackId from a call to execute
@Override public boolean execute(String action, JSONArray arr, CallbackContext cbkCtx) throws JSONException {
myCbkId = cbkCtx.getCallbackId();
JSONObject data = arr.getJSONObject(0);
String ack = data.getString("data"); // You can acknowledge to the callback for instance and keep it alive
Log.d(TAG, "ack".equals(ack) ? "ack !" : "not ack !");
// These lines can be reused anywhere in your app to send data to the javascript
PluginResult result = new PluginResult(PluginResult.Status.OK, ack);
result.setKeepCallback(true);//This is the important part that allows executing the callback more than once, change to false if you want the callbacks to stop firing
this.webView.sendPluginResult(result, this.myCbkId);
return true;
}