2

キャンバス画像をギャラリーに保存するために、phonegap で以下の javascript コードとともにプラグインを作成してみましたが、ボタンをクリックした後Uncaught TypeError: Cannot read property 'version' of undefined at file:///android_asset/www/index.html:18" 、コードの"

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>    
<script type="text/javascript" charset="utf-8" src="SavePhotoPlugin.js"></script>
<link rel="stylesheet" href="index.css" /> 
<script type="text/javascript"> 
document.addEventListener("deviceready", onDeviceReady, false);

 function onDeviceReady() {
        var element = document.getElementById('myCanvas');

    }
    function share() {      

        var canvas = document.getElementById("myCanvas");
        window.savephotoplugin(canvas,"image/png",device.version,function(val){ 
          //returns you the saved path in val   
                alert("Photo Saved: " + val);   
        });
    }
</script>
    </head>
     <body>

       <div >

     <IMG SRC="loadin.png" ALT="some text" WIDTH=100 HEIGHT=100>
     <button class="button" id="myCanvas" onclick="share()">SAVE </button>
      </div>

私はコルドバ2.2、2.9で試しましたが、すべてのバージョンは同じままで、2.3バージョンのデバイスでテストされました。この問題は、デバイスの cordova バージョンの問題なのか、それとも他の問題なのか、誰か間違いを指摘してください。

4

2 に答える 2

5

jQuery の最新バージョンでは、ブラウザーの検出がサポートされなくなりました。最近では、ブラウザ検出よりも機能検出を推奨する人がほとんどです。

1.9 より前の jQuery ライブラリに戻すか、jQuery 移行プラグインを使用するか、ブラウザ バージョンを参照する JavaScript コードを Modernizr などの別のものに変更する必要があります。

于 2013-11-30T06:36:16.167 に答える
0

コメントで既に述べたように、 devicereadyイベントが発生しdeviceた後にのみアクセスするコードを実行する必要があります。

別の問題はdevice、関数内で変数を定義することですshare()。deviceready の後にこれを実行しても、これにより cordova デバイス オブジェクトが上書きされます。したがって、行を削除しますvar device

于 2013-10-09T12:39:42.563 に答える