2014-11-04 2 views
0

phonegap 응용 프로그램을 빌드하고 cordova.exec를 사용하여 Java 기본 플러그인을 호출했습니다. 예기치 않게 어딘가에 붙어 있습니다.하나 이상의 cordova.exec에 콜백을 보낼 수 없습니다.

나는 cord.exec 루프를 여러 번 호출하고 있습니다. 또한 이러한 원시 플러그인은 비동기 작업을 수행하고 있습니다. 그러나 놀랍게도 첫 번째 cordova.exec() 호출 만 반환합니다. 내 마지막 cordova.exec() 전화로 javascript로 돌아가고 싶습니다.

도와주세요. 다음과 같이 내 코드

자바 스크립트가 내가 선택한 5 개 많은 ListItems이 자바 기본 플러그인

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; 
     }      
} 
} 

한다고 가정

을 코드 -
$("input:checked").each(function() 
     { 
      cordova.exec(callbacksuccess,callbackerror,'MyPlugin','plugin1',[path,pckg,id]); 
     }); 
    function callbacksuccess(e) 
    { 
    alert(e); 
    } 
    function callbackerror() 
    { 
    alert('error'); 
    } 

을 코드 - ----입니다. "done"을 한 번만 반환합니다. callbacksuccess 함수는 첫 번째 cordova.exec 함수에 대해 한 번만 호출됩니다. 어떤 해결책도 찾지 못했습니다. 고맙습니다 미리

+0

이 어떻게이 일을 해결된다 :

PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT); pluginResult.setKeepCallback(true); return pluginResult; 

는 2.When는 당신의 비동기 자바 방법은 다른 플러그인이 같은 결과를 반환 완료? 아래 답변은 나를 위해 작동하지 않습니다 .. – Aravin

답변

3

시도해보십시오.

1. 플러그인의 execute() 메소드에서 얻은 callbackId를 저장하고 NO_RESULT 플러그인 결과를 반환하고 keep callback id를 true로 설정하십시오.

PluginResult result = new PluginResult(PluginResult.Status.OK, data); 
result.setKeepCallback(false); 
this.success(result, this.myCallbackId); 
+0

고맙습니다. 나는 그것에 대해 더 일찍 생각하지 않았다. 귀하의 솔루션은 혼란을 해결했습니다. 다시 감사합니다. – megha

+0

솔루션을 유용하게 사용할 수 있으면 안녕하세요, 친절하게 upvote하십시오. –

+0

실제로 투표를하려면 최소한의 평판이 필요합니다. 나는 그것을 얻지 못했다. – megha

관련 문제