我正在使用Dashcode开发HTML / Javascript移动Web应用程序。通常情况下,我不会使用这种所见即所得的东西,但我发现它是一个非常快速的开发过程。
不幸的是,我现在无法在Android的浏览器上运行它。主显示加载和所有正确的数据都是从Web服务中提取的,但您无法按任何内容来激活它。
我怀疑android浏览器正在发送不同的javascript事件,Dashcode对象没有配置为接收。
此外,adb logcat调试器拒绝从模拟器上的浏览器输出任何日志消息,因此我很难将其排序。
所以我的问题是:有人可以帮我找出我需要注意的事件,所以我可以遍历所有触摸处理程序并复制它们以用于安卓事件,或者在这种情况下以任何其他方式提供帮助?
答案 0 :(得分:1)
我的Dashcode应用程序也遇到了同样的问题。 另一方面,我的jqTouch应用程序在Android浏览器上完美运行 - 与iPhone(Mobile Safari)完全相同。
这让我想知道: jqTouch如何注册点击/点击/任何用户事件与Dashcode不同? 如果有人可以回答这个问题,我们可能会解决问题的一半...
答案 1 :(得分:1)
至少,onClick事件我遇到过类似的问题。尝试从deploy文件夹中删除所有数据。我还使用内联样式来触发'onclick'方法,如下所示:
<div id="subscribeSubscriptionBtn" apple-part="com.apple.Dashcode.part.pushbutton" class="apple-no-children button" onclick="btnHandler(event);"></div>
这适用于iPhone和Android 2.1设备(预安装的浏览器和FF)。希望有所帮助...
答案 2 :(得分: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浏览器识别为Mobile 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/)