Android上的Cordova navigator.notification.confirm回调卡在队列中

时间:2014-03-14 16:26:09

标签: android cordova

这是一个很长的镜头,但我会问,看看其他人是否经历过类似的事情。

我们正在创建一个cordova(3.3.0)iOS / Android应用程序。在iOS上一切都很好。 在Android(使用Android模拟器或三星8 Tab 4.2.2进行测试)调用navigator.notification.confirm时,我们经常看到在按下一个确认对话框按钮后,JS中没有回调回调。

调试Cordova(本机端)我们看到按下按钮,原始对话框被解除,回调消息被添加到JsMessageQueue。但是,除非其他东西强迫它,否则队列似乎没有得到服务。例如,另一次调用navigator.notification.confirm会导致排队的消息运行。

我们已经在setPaused上添加了额外的日志记录到NativeToJSMessageQueue中,看看是否有什么东西没有恢复暂停但看起来还不错。

我确信我们已经做了些什么来打扰它。有什么基本的东西可以基本上阻止消息队列被处理,我们应该知道吗? javaside上的某些内容会导致Android上的cordova无法检查队列吗?

我们在iOS上没有看到问题,但我确信这是因为它没有使用与Android相同的消息发送系统。

很抱歉缺少代码或更多信息。我希望这可能会引起一些争议。

更新 我们做了一些调试,似乎与全屏模式有关。如果设置为全屏模式(通过配置)或本机代码,则事件会触发。 如果全屏模式设置为false,则回调事件将保留在队列中,并在第二次按下该按钮后立即触发。

function onConfirm(buttonIndex) {
    alert('You selected button ' + buttonIndex);
}

function testButton()
{
   navigator.notification.confirm('You are the winner!',onConfirm, 'Game Over', ["Butt1","Butt2"]);
}

1 个答案:

答案 0 :(得分:0)

已在Cordova 3.6.0中修复此问题。