2014-03-04 274 views
0

我有一個調用本地Java函數的JS函數。該本機功能向主機發送藍牙語句。這個主機異步回答,這個回答由Handler取回。Phonegap等待異步任務完成

我的問題是,是否有可能將結果,其中包含的答案,回答JS時,答案是真的嗎?

我試着發送第二個回調函數,但是這不能正常工作,因爲JS函數不會等到所有結果都存在(如本例中所述:Android Phonegap: Notify javascript when an AsyncTask is finished)。據之前完成...

其次我無法訪問這行代碼(來自例子),我認爲它已經過時:

this.success(result, this.myCallbackId); 

希望能幫到你!

回答

0

嗯,我知道,這可能是沒有藝術或表現可能是非常糟糕的狀態,但我找到了一個解決方法自己:

第一步是發送請求,當所有的答案都可以我調用JS功能,從而啓動從本地代碼獲取所有日期:

this.webView.sendJavascript("fetchValues("+ mResultArrayForResultValues+");"); 

如果有人有更好的辦法來解決這個 - 請張貼。到目前爲止,我將使用此解決方案。

0

我喜歡AsyncTasks更好,但是,嘿,但你到達那裏=]

我也很喜歡Vito的答案該網頁有更多的(即不檢查一個);直接調用javascript;無論如何,我就是這麼稱呼JavaScript的。

GL HF

+0

對不起,沒有明白你的意思。我更喜歡使用回調解決方案 – belafarinrod91

+0

是的,但似乎它已被棄用,或不再工作(我不知道;沒有檢查。)異步不依賴於被調用的回調。是否有理由超出異步不能工作?嘗試一下,你可能會喜歡它=] –

+0

是啊,你從哪裏得到的信息,該回調解決方案已被棄用?我會試一試 - 非常感謝! – belafarinrod91