0

私はプログラムを実行していて、指でスワイプ画面を追加したかったのですが、それを実行しましたが、何らかの理由でAndroid 2.3.3を搭載した携帯電話では機能しませんが、ブラウザーではすべて正常に機能します。何が問題なのかわかりますか?

これがコードです

    <!DOCTYPE html>
<html>
<head>

  <title>jQuery Mobile test page</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet"  href="http://code.jquery.com/mobile/latest/jquery.mobile.css" />
  <!-- <link rel="stylesheet"  href="jquery.mobile/jquery.mobile-1.1.0.css" />  -->
  <script src="http://code.jquery.com/jquery-1.7.1.js"></script> 
  <script type="text/javascript">
    var pageSeq = ['page1','page2','page3','page4'];
    var currentPage = 0;
    var bindSwipeEvents = function() {
        $(".ui-page").swipeleft(function() {
            console.log(pageSeq.length + ",current:"+currentPage);
            if(currentPage==pageSeq.length) { return; }
            currentPage++;
            $.mobile.changePage( $('#'+pageSeq[currentPage]), 
                             { transition: "slide", reverse:false});
        });

        $(".ui-page").swiperight(function() {
            if(currentPage==0) { return; }
            currentPage--;
            $.mobile.changePage( $('#'+pageSeq[currentPage]), 
                             { transition: "slide", reverse:true});
        });
    };

    $( '.ui-page' ).live( 'pageinit',function(event){
        bindSwipeEvents();
    });
    bindSwipeEvents();
  </script>
  <script src="http://code.jquery.com/mobile/latest/jquery.mobile.js"></script>
  <!-- <script src="jquery.mobile/jquery.mobile-1.1.0.js"></script>  -->
  <script type="text/javascript" charset="utf-8" src="js/cordova-1.6.1.js"></script> 
</head>

<body>

<div data-role="page" id="page1">
    <div data-role="header">
        <h1>Page Title</h1>
    </div><!-- /header -->

    <div data-role="content">    
        <h3> Page 1 </h3>            
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<div data-role="page" id="page2">
    <div data-role="header">
        <a data-rel="back">Back</a>
        <h1>Page Title</h1>
    </div><!-- /header -->

    <div data-role="content">    
        <h3>Page 2</h3>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->
<div data-role="page" id="page3">
    <div data-role="header">
        <a data-rel="back">Back</a>
        <h1>Page Title</h1>
    </div><!-- /header -->

    <div data-role="content">    
        <h3>Page 3</h3>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->
<div data-role="page" id="page4">
    <div data-role="header">
        <a data-rel="back">Back</a>
        <h1>Page Title</h1>
    </div><!-- /header -->

    <div data-role="content">    
        <h3>Page 4</h3>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
4

1 に答える 1

1

スワイプやピンチなどのマルチタッチ イベントは、ほとんどの Android 2.x ROM の Android ブラウザーでは機能しません (こちらを参照)。

ただし、これらのイベントを再度有効にして、この回避策を使用して Android 2.x デバイスの phonegap アプリで使用することができます。

これを phonegap アプリで使用し、hammer.jsライブラリを使用して Android 2.2 で正常にテストし、イベントのリッスンを行いました。

于 2012-12-13T23:30:28.663 に答える