PhoneGap Android插件:无法调用失败回调

时间:2013-08-17 12:32:37

标签: java javascript android cordova

我开发了一个Android PhoneGap插件。该插件已成功调用,但成功回调是在JavaScript中的失败回调函数中调用的。

在JavaScript代码中,我警告成功和失败结果,但在模拟器中,成功结果是失败回调。

有没有人知道在失败回调中调用成功回调时会出现什么问题?

请帮帮我

以下是我的javascript代码:

 function syncRow(){
    window.plugins.mobileMojo.runSyncRule(
            synchRule,
            function(e){},
            function(r){alert(r)}
        );
}

Java PluginClass代码:

try{
       String ruleName = data.getString(0);
            String findData = null;
           Log.d(logId, action + " " + ruleName);
            if (!data.isNull(1)) {
                JSONObject jFindData = data.getJSONObject(1);
              Log.d(logId, action + data);
                Log.d(logId, action + jFindData);
                Hashtable findHash = new Hashtable();
              JSONArray columns = jFindData.getJSONArray("data");
                Log.d(logId, action + jFindData);
                for (int i = 0; i < columns.length(); i++) {
                    JSONObject jCol = columns.getJSONObject(i);
                    JSONArray keys = jCol.names();

                    for (int k = 0; k < keys.length(); k++) {
                        String keyName = keys.getString(k);
                        findHash.put(keyName, jCol.getString(keyName));
                    }
                }
                findData = DataTable.createFindString(findHash);
            }
            Log.d(logId, action + " " + ruleName);
            MapApp.getApp().runSynchRule(ruleName, findData);
            result = new PluginResult(PluginResult.Status.OK);
        }
            catch(Exception e){
                String msg = "Error in " + logId + " " + action + ": " + e;
                String s = "Exception: " + e.getClass().getName() + ":" + e.getMessage() + " in"  + " "+ action; 
                //String s = new PluginResult(PluginResult.Status.SYNC_EXCEPTION).status + " " +":" +" " + new PluginResult(PluginResult.Status.SYNC_EXCEPTION).message;
               Log.d(logId, msg);
                result = new PluginResult(PluginResult.Status.SYNC_EXCEPTION, s);
            }
        }

结果:在失败回调中警告成功消息为OK。

我调试了代码,但没有发现任何问题。但是在运行应用程序时,它会在失败回调中提供成功消息。

我正在使用cordova-1.8.1版本。

0 个答案:

没有答案