【问题标题】:Phonegap on Galaxy S3 ignores touch eventsGalaxy S3 上的 Phonegap 忽略触摸事件
【发布时间】:2012-10-12 15:27:33
【问题描述】:

我遇到了一个非常奇怪的问题。我有一个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代码中绑定事件,比如this

// 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);

【问题讨论】:

    标签: javascript cordova dom-events samsung-mobile galaxy


    【解决方案1】:

    我很遗憾地说,Ice Cream Sandwich 似乎不支持触摸事件 (http://stackoverflow.com/questions/11390902/webview-in-ics-touch-events-not-being-fired -适当地)。所以 iOS 支持 touch* 事件,Galaxy S 支持 touch* 和 mouse*,Ice Cream Sandwich (S3) 不支持 touch*。埃加兹。我希望我错了。

    【讨论】:

    • 我已经在我的 Galaxy Nexus (ICS/JB) 上的 PhoneGap 应用程序中成功使用了 touchstart、touchmove 等。也许这个答案可以帮助你:stackoverflow.com/a/10495741/710990.
    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多