我正在構建一個phonegap應用程序,並使用cordova.exec從它調用了一個java原生插件。 我被卡住了意想不到的地方。無法發送回調到多個cordova.exec
我在一個循環中多次調用cordova.exec。這些本地插件正在執行異步任務。但令人驚訝的是,它只爲第一個cordova.exec()調用返回回調。我希望它在我最後的cordova.exec()調用中返回到javascript。
請幫忙。 我的代碼如下----
的Javascript代碼 -
$("input:checked").each(function()
{
cordova.exec(callbacksuccess,callbackerror,'MyPlugin','plugin1',[path,pckg,id]);
});
function callbacksuccess(e)
{
alert(e);
}
function callbackerror()
{
alert('error');
}
Java本機插件代碼 -
if (action.equals("plugin1"))
{
new DownloadManager().execute(myurl);
return true;
}
public class DownloadManager extends AsyncTask<String, String, String>
{
@Override
public String doInBackground(final String... arg0)
{
try
{
downloadapk(arg0[0]);
installapk();
System.out.println("Download Complete");
PluginResult result = new PluginResult(PluginResult.Status.OK, "success");
result.setKeepCallback(true);
callback.success("done");
return null;
}
catch(Exception e)
{
callback.error("Some problem occured.Try again later");
return null;
}
}
}
假如我有選擇的5個listItems中。它只返回「完成」一次。 callbacksuccess函數只針對第一個cordova.exec函數調用一次。我沒有找到任何解決方案。 Thanx提前
你解決了這個一個怎麼樣?下面的答案不適合我.. – Aravin 2014-12-23 19:13:29