mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 17:10:15 +08:00
Fix encoding of multipart messages.
This commit is contained in:
parent
4919a2d2a8
commit
33da6e9eb8
@ -488,20 +488,19 @@ public class NativeToJsMessageQueue {
|
|||||||
encodeAsMessageHelper(sb, pluginResult);
|
encodeAsMessageHelper(sb, pluginResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
void encodeAsJsMessage(StringBuilder sb) {
|
void encodeMessageAsJsMessage(StringBuilder sb) {
|
||||||
if (pluginResult == null) {
|
|
||||||
sb.append(jsPayloadOrCallbackId);
|
|
||||||
} else {
|
|
||||||
int status = pluginResult.getStatus();
|
|
||||||
boolean success = (status == PluginResult.Status.OK.ordinal()) || (status == PluginResult.Status.NO_RESULT.ordinal());
|
|
||||||
sb.append("cordova.callbackFromNative('")
|
|
||||||
.append(jsPayloadOrCallbackId)
|
|
||||||
.append("',")
|
|
||||||
.append(success)
|
|
||||||
.append(",")
|
|
||||||
.append(status)
|
|
||||||
.append(",[");
|
|
||||||
switch (pluginResult.getMessageType()) {
|
switch (pluginResult.getMessageType()) {
|
||||||
|
case PluginResult.MESSAGE_TYPE_MULTIPART:
|
||||||
|
int size = pluginResult.getMultipartMessagesSize();
|
||||||
|
for (int i=0; i<size; i++) {
|
||||||
|
PluginResult subresult = pluginResult.getMultipartMessage(i);
|
||||||
|
JsMessage submessage = new JsMessage(subresult, jsPayloadOrCallbackId);
|
||||||
|
submessage.encodeMessageAsJsMessage(sb);
|
||||||
|
if (i < (size-1)) {
|
||||||
|
sb.append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case PluginResult.MESSAGE_TYPE_BINARYSTRING:
|
case PluginResult.MESSAGE_TYPE_BINARYSTRING:
|
||||||
sb.append("atob('")
|
sb.append("atob('")
|
||||||
.append(pluginResult.getMessage())
|
.append(pluginResult.getMessage())
|
||||||
@ -515,6 +514,22 @@ public class NativeToJsMessageQueue {
|
|||||||
default:
|
default:
|
||||||
sb.append(pluginResult.getMessage());
|
sb.append(pluginResult.getMessage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void encodeAsJsMessage(StringBuilder sb) {
|
||||||
|
if (pluginResult == null) {
|
||||||
|
sb.append(jsPayloadOrCallbackId);
|
||||||
|
} else {
|
||||||
|
int status = pluginResult.getStatus();
|
||||||
|
boolean success = (status == PluginResult.Status.OK.ordinal()) || (status == PluginResult.Status.NO_RESULT.ordinal());
|
||||||
|
sb.append("cordova.callbackFromNative('")
|
||||||
|
.append(jsPayloadOrCallbackId)
|
||||||
|
.append("',")
|
||||||
|
.append(success)
|
||||||
|
.append(",")
|
||||||
|
.append(status)
|
||||||
|
.append(",[");
|
||||||
|
encodeMessageAsJsMessage(sb);
|
||||||
sb.append("],")
|
sb.append("],")
|
||||||
.append(pluginResult.getKeepCallback())
|
.append(pluginResult.getKeepCallback())
|
||||||
.append(");");
|
.append(");");
|
||||||
|
Loading…
Reference in New Issue
Block a user