0

Eclipse で Android プロジェクトとしてコンパイルし、 /assets/wwwフォルダーからロードする HTML5 アプリがあります。

次のように、PhoneGap Mediaクラスと jQuery (1.8.3)を使用していくつかのオーディオを読み込みます。

//Javascript

$(document).ready(function() {
        $(".bt_play").click(function(event) {

            var audio_file = $(this).attr('href');
            playAudio('/android_asset/www/audio/' + audio_file);

            return false;
        });

    });

var my_media = null;

    function playAudio(url) {
        my_media = new Media(url, success, fail);
        my_media.play();
    }

//HTML

<a href="myAudio.mp3" class="bt_play">PLAY</a>

jQuery Mobileを含めない場合、上記のコードは完全に機能し、オーディオ ファイルを再生します。ただし、jQuery Mobile ライブラリ (バージョン 1.3.1) を含め、コード内で他に何も変更していない場合、音声を再生する代わりにそのリンクをクリックすると、ページの読み込み中にエラーメッセージが表示されます。

jQuery の代わりに、jQuery Mobile 固有のドキュメント準備機能を使用してみました$(document).on('pageinit', function() { ... });が、それでも同じエラーが発生します。

なぜこれが起こっているのかについてのアイデアはありますか?

4

2 に答える 2

0

Omarの推奨事項を使用して解決しました:

  • $(document).on('pageshow',...)};の代わりに使用.ready()
  • イベントで使用event.preventDefaultし、click()return
  • タグで使用data-ajax="false"して、ユーザーをこのページに移動させるリンクで AJAX ナビゲーションを無効にします。<a>
于 2013-07-20T01:42:45.243 に答える
0

アイデアはばかげているように聞こえるかもしれませんが、もっと試してみるか、pageinitの代わりにpagebeforecreateを配置するか、onclick で呼び出す関数を呼び出しますか?

このバージョンの JqueryMobile には多くの問題があり、ライブが機能しないため、すべての呼び出しを onclick 内に配置しています ...

于 2013-07-19T19:24:46.123 に答える