我有一个“等待屏幕”,在 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
谢谢。