我有一个非常奇怪的问题。我有一个Phonegap 2.0 应用程序,基本上完成了。它可以在 iPhone 和 iPad 上运行,我在一天之内就将它移植到了 Android 上,并在我的 Galaxy S 上进行了测试。一切运行良好。然后我尝试在我全新的 S3 上运行它,但没有任何触摸事件起作用。点击有效,但触摸无效。
如果我运行此代码:
document.addEventListener('touchstart', function (e) { console.log('touch start')}, false);
document.addEventListener('click', function (e) { console.log('doc click'); }, false);
...只有点击事件日志。如果我注释掉点击,除了系统点击我什么也得不到。
10-12 10:08:16.213: V/webview(2805): NO_FAST_DRAW = false
10-12 10:08:16.283: V/webview(2805): singleCursorHandlerTouchEvent -getEditableSupport FASLE
真正奇怪的是,相同的 touchstart 在 S3 浏览器和 PhoneGap ChildBrowser 插件上都有效。只是不在应用程序的 webview 部分,而仅在 S3 上。
[更新]
而且它变得更奇怪了。如果我在内联 JavaScript 代码中绑定事件,例如这个
// Javascript stuff
document.addEventListener('touchstart', function (e) { alert('touch start')}, false);
// more JavaScript stuff
它确实有效。但是,如果我在超时后设置它不会
setTimeout(function() {
document.addEventListener('touchstart', function (e) { alert('touch start')}, false);
}, 2000);