Cordova/Phonegap:JavaScript等待屏幕导致onScrollChanged事件
我有一个“等待屏幕”,在Cordova/PhoneGap 3.3中的javascript计算过程中显示(这需要5-10秒)。等待屏幕是整个屏幕上的一个DIV,使视图变暗。我的问题是,当用户滑动等待屏幕时,整个应用程序滚动到部分离开屏幕的一侧,同时打印以下日志消息:Cordova/Phonegap:JavaScript等待屏幕导致onScrollChanged事件,javascript,settimeout,wait,cordova-3,touchmove,Javascript,Settimeout,Wait,Cordova 3,Touchmove,我有一个“等待屏幕”,在Cordova/PhoneGap 3.3中的javascript计算过程中显示(这需要5-10秒)。等待屏幕是整个屏幕上的一个DIV,使视图变暗。我的问题是,当用户滑动等待屏幕时,整个应用程序滚动到部分离开屏幕的一侧,同时打印以下日志消息: CordovaActivity: onMessage(onScrollChanged,org.apache.cordova.ScrollEvent@4207f0f0) 我猜这是因为我们在window.setTimeout的帮助下触发
CordovaActivity: onMessage(onScrollChanged,org.apache.cordova.ScrollEvent@4207f0f0)
我猜这是因为我们在window.setTimeout的帮助下触发了等待屏幕,如下所示:
$("#wait-screen").show();
window.setTimeout(function() {
... code for computations ...
$("#wait-screen").hide();
}, 10);
没有timout解决方案,DIV根本不会显示,最小工作超时值为10ms。我像这样在整个文档中阻止了touchMove事件
document.addEventListener('touchmove', function(event) { event.preventDefault(); }, false);
touchMove阻塞在任何地方都有效,但在等待屏幕期间无效。我也尝试将EventListener添加到wait screen DIV,但它没有阻止移动
我怀疑超时会创建一个额外的javascript线程,该线程与主应用程序代码分开,因此touchmove不会被阻止
有人能帮我做以下事情吗?
1) 在没有超时的情况下执行等待屏幕
或
2) 在超时期间有效阻止touchmove
谢谢。据我所知,Javascript不是多线程的,因此,我相信您的问题可能在于添加侦听器之前运行的事件的可能原因,或者其他一些错误。我在应用程序启动后的等待屏幕之前添加了侦听器。