java - 没有从我的自定义 Cordova 插件 (Android) 获取回调

标签 java javascript android cordova

我创建了一个用于多部分调用的插件,并且我的插件似乎可以工作, 但当我这样调用它时:

multipart.uploadFiles(function() {
        alert("success");
    }, function() {
        alert("errorr");
    },  wsUrl, strArray, myRequest);  

即使我从 java 代码中打印出正确的响应,我也没有得到任何回调。

如何解决?

这是我的 js 界面:

var multipart = {

        uploadFiles: function (successCallback, errorCallback, serviceUrl, arrayRes, requestObject) {
            cordova.exec(successCallback,
                    errorCallback, 
                    "Multipart",  // java class, service
                    "uploadFiles", // action
                    [{                 // and this array of custom arguments to create our entry
                        "serviceUrl":serviceUrl,
                        "resPaths": arrayRes,
                        "requestObject": requestObject
                    }]
            );
        }
};

这是我的java代码:

public class Multipart extends CordovaPlugin{

    private static final String MULTIPART_TAG = null;


    @Override
    public boolean execute(final String action, final JSONArray args,
            final CallbackContext callbackContext) throws JSONException {

        final Context context = this.cordova.getActivity();

        // sincronizza il modulo definito in action
        cordova.getThreadPool().execute(new Runnable() {
            @Override
            public void run() {
                try {
                    uploadFiles(context, action, args, callbackContext);
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }               
            }


        });
        return true;
    }

    private static void uploadFiles(Context context, String action, final JSONArray args, CallbackContext callbackContext) throws JSONException {
        String requestURL = null;
        JSONArray resPaths = null;
        JSONObject requestObject = null;
        String charset = "UTF-8";
        JSONObject argObject = args.getJSONObject(0);

         requestURL = argObject.getString("serviceUrl");
         resPaths = argObject.getJSONArray("resPaths");

         requestObject = argObject.getJSONObject("requestObject");
         String request = requestObject.toString();

        try {

            MultipartUtility multipart = new MultipartUtility(requestURL, charset);

            multipart.addHeaderField("User-Agent", "CodeJava");
            multipart.addHeaderField("Test-Header", "Header-Value");

            multipart.addFormField("description", "descr");
            multipart.addFormField("keywords", "Java,upload");
            //multipart.addFormField("request", request);
            multipart.addJsonField("request", request);
         for (int i = 0; i < resPaths.length(); i++) {
                 File fileToPost = new File(resPaths.get(i).toString());
                 multipart.addFilePart("fileUpload", fileToPost);
             }

            List<String> response = multipart.finish();

            System.out.println("SERVER REPLIED:");

            for (String line : response) {
                System.out.println(line);
            }
        } catch (IOException ex) {
            System.err.println(ex);
        }

    }
}

最佳答案

我在您的 Java 代码中看不到任何callbackContect.success 或callbackContext.error 调用。

关于java - 没有从我的自定义 Cordova 插件 (Android) 获取回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268305/

相关文章:

java - 如何将 RelativeLayout 旋转 180 度?

java - android中的一个简单的TabHost

java - Tomcat 7 受限 (ContainerServlet) 错误

java - 创建 GridBagLayout 固定大小的按钮

java - 一个 Java 库,具有用于查找一组整数的最小公倍数的实用程序

javascript - ng-repeat 对象数组

javascript - 在 GraphQL 中的突变之前删除只读字段

javascript - 如何使用 Bootstrap 按钮和表单内部调用 onClick javascript 函数?

android - 删除用户数据 Android studio 2.2.3

java - 如何在 Java 测试文件中使用 ScalaTest?