2014-03-04 276 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