1

Dashcode を使用して HTML/Javascript モバイル Web アプリケーションを開発しています。通常、私はそのような WYSIWYG を使用しませんが、非常に迅速な開発プロセスであることがわかりました。

残念ながら、現在 Android のブラウザでは実行できないようです。メイン ディスプレイが読み込まれ、すべての正しいデータが Web サービスから取得されますが、何も押してアクティブにすることはできません。

Android ブラウザーがさまざまな JavaScript イベントを送信していると思われますが、Dashcode オブジェクトはそれを取得するように構成されていません。

さらに、adb logcat デバッガーは、エミュレーターのブラウザーからのログ メッセージの出力を拒否するため、これを整理するのに非常に苦労しています。

だから私の質問は: 誰かが私が監視する必要があるイベントを見つけるのを手伝ってくれるので、すべてのタッチハンドラーを反復処理して Android イベント用に複製したり、この状況で他の方法で助けを提供したりできますか?

4

3 に答える 3

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) で機能しました。それが役立つことを願っています...

于 2011-09-16T08:50:53.043 に答える
1

Dashcode アプリケーションでも、まったく同じ問題に遭遇しました。一方、私の jqTouch アプリケーションは Android ブラウザで完全に動作します。iPhone (Mobile Safari) で動作するのとまったく同じです。

jqTouch は、Dashcode とは異なり、クリック/タップ/その他のユーザー イベントにどのように登録するのでしょうか? 誰かがこの質問に答えることができれば、解決への道のりは半分になるかもしれません...

于 2010-11-18T12:02:27.637 に答える
0

私はこれに取り組んで、それを整理したと思います。

問題は、Dashcode JavaScript フレームワークのブラウザー スニッフィングにあります。

の47Parts/core/core/base.js行目:

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

の581Parts/core/views/Page.js行目:

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 に答える