1

我有一个“等待屏幕”,在 Cordova/PhoneGap 3.3 中的 javascript 计算(这些需要 5-10 秒)期间显示。等待屏幕是整个屏幕上的 DIV,使视图变暗。我的问题是当用户滑动等待屏幕时,整个应用程序滚动到一边,部分离开屏幕,同时打印以下日志消息:

CordovaActivity: onMessage(onScrollChanged,org.apache.cordova.ScrollEvent@4207f0f0)

我想这是因为我们在 window.setTimeout 的帮助下触发了等待屏幕,如下所示:

$("#wait-screen").show();
window.setTimeout(function() {
    ... code for computations ...
    $("#wait-screen").hide();
}, 10);

如果没有超时解决方案,DIV 根本不会显示,最小的工作超时值为 10 毫秒。我像这样在整个文档中阻止了 touchMove 事件

document.addEventListener('touchmove', function(event) { event.preventDefault(); }, false);

touchMove 阻止在任何地方都有效,但在等待屏幕期间无效。我也尝试将 EventListener 添加到等待屏幕 DIV,但它并没有阻止移动。

我怀疑超时会创建一个额外的 javascript 线程,该线程将主应用程序代码分开,因此 touchmove 不会在那里被阻塞。

有人可以帮助以下其中一项吗?1) 在没有超时的情况下执行等待屏幕或 2) 在超时期间有效阻止 touchmove

谢谢。

4

0 回答 0