2010-07-16 46 views
1

我正在使用Dashcode开发HTML/Javascript移动Web应用程序。通常我不会使用这种所见即所得的东西,但我发现它是一个非常快速的开发过程。Android浏览器与Dashcode移动项目不正确的触摸事件

不幸的是,它似乎目前无法在Android浏览器上运行。主要的显示负载和所有正确的数据都是从Web服务中提取的,但不能按任何东西来激活它。

我怀疑Android浏览器正在发送不同的JavaScript事件,而Dashcode对象没有配置为拾取。

此外,亚行logcat调试程序拒绝在模拟器输出从浏览器的任何日志消息,因此我有一个非常艰难的时间整理了这一点。

所以我的问题是:有人可以帮我找出我需要关注的事件,所以我可以迭代所有触摸处理程序并将它们复制到android事件中,或者以任何其他方式提供帮助情况?

+0

我一直有同样的问题。有人想帮忙吗? – 2011-07-07 02:15:59

回答

1

我遇到了与我的Dashcode应用程序完全相同的问题。另一方面,我的jqTouch应用程序完全可以在Android上运行 - 与iPhone(Mobile Safari)完全相同。

这让我想知道: jqTouch如何注册点击/点击/任何用户事件不同于Dashcode? 如果有人能回答这个问题,我们可能是半路上的解决方案...

1

至于,至少,onClick事件我有类似的问题。尝试从部署文件夹中删除所有数据。我还使用了内嵌样式火象这样的“onClick”方法:

   <div id="subscribeSubscriptionBtn" apple-part="com.apple.Dashcode.part.pushbutton" class="apple-no-children button" onclick="btnHandler(event);"></div> 

这个工作对我来说在iPhone和Android 2.1的设备(preinstaled浏览器和FF)。希望帮助...

0

我按倒本和认为我有它排序。

问题在于Dashcode JavaScript框架的浏览器嗅探。

Parts/core/core/base.js,第47行:

MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) 

Parts/core/views/Page.js,行581:

if (!DC.Browser.MobileSafari) 
{ 
     document.addEventListener('click', wrapEventHandler("_onclick"), false); 
     document.addEventListener('dblclick', wrapEventHandler("_ondblclick"), false); 
} 

Dashcode会错误地标识了Android浏览器作为移动Safari浏览器,因为它的用户代理看起来像:Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

结果是Dashcode无法附加其click和dblclick事件侦听器。

更改的Parts/core/core/base.js这行47修复它:

MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) && !!!navigator.userAgent.match(/Android/)