I implemented a fix that seems to work ok
Instead of calling `injectDeferredObject` in the `injectScriptCode` branch
(here:
https://github.com/apache/cordova-plugin-inappbrowser/blob/master/src/android/InAppBrowser.java#L254)
I instead call my new function `runJavascriptWithResult(args.getString(0),
callbackContext)`
The implementation of this function is
```
private void runJavascriptWithResult(String scriptToInject, CallbackContext
callbackContext) {
final String finalScriptToInject = scriptToInject;
final CallbackContext finalCallbackContext = callbackContext;
final String callbackId = callbackContext.getCallbackId();
this.cordova.getActivity().runOnUiThread(new Runnable() {
@SuppressLint("NewApi")
@Override
public void run() {
inAppWebView.evaluateJavascript(finalScriptToInject, new
ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
PluginResult pluginResult;
try {
pluginResult = new
PluginResult(PluginResult.Status.OK, new JSONArray("[" + s + "]"));
} catch(JSONException e) {
pluginResult = new
PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
}
finalCallbackContext.sendPluginResult(pluginResult);
}
});
}
});
}
```
Would this be a suitable fix? If so I can create a PR
[ Full content available at:
https://github.com/apache/cordova-plugin-inappbrowser/issues/303 ]
This message was relayed via gitbox.apache.org for [email protected]