1

我正在使用 Dashcode 开发 HTML/Javascript 移动 Web 应用程序。通常我不会使用这种所见即所得的东西,但我发现它是一个非常快速的开发过程。

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

我怀疑 android 浏览器正在发送不同的 javascript 事件,而 Dashcode 对象未配置为接收这些事件。

此外,adb logcat 调试器拒绝从模拟器上的浏览器输出任何日志消息,因此我很难解决这个问题。

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

4

3 回答 3

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 设备(预装浏览器和 FF)上对我有用。希望有帮助...

于 2011-09-16T08:50:53.043 回答
1

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

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

于 2010-11-18T12:02:27.637 回答
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 事件侦听器。

将第 47 行更改Parts/core/core/base.js为此修复它:

MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) && !!!navigator.userAgent.match(/Android/)
于 2011-10-26T14:19:35.430 回答