0

Phonegapを使用してAndroidに移植されたSenchatouchを使用してカメラにアクセスしようとしています。ネイティブAPIを使用するためのSenchaタッチガイドが示唆しているように、私はカメラを必須として宣言しました: Ext.require('Ext.device.Camera');
しかし、残念ながら、私はこのエラーを受け取ります:

07-19 11:51:42.159: E/Web Console(8668): Uncaught Error: [Ext.Loader]
Failed loading './device/Camera.js', please verify that the file exists at 
file:///android_asset/www/lib/touch/sencha-touch-all-debug.js:8000

senchaライブラリには、デバイスの下にCamera.jsがあります。このエラーが表示される理由がわかりません。

編集1:まだ答えを見つけることができません。何か提案をいただければ幸いです。

4

3 に答える 3

1

展開に phonegap を使用している場合は、Phonegap カメラ機能を使用します。私は自分のアプリで次のように使用しました:

  1. <script type="text/javascript" src="cordova-x.x.x.js"></script>index.html ファイルに追加します。

  2. カメラを開くには、次のコードを使用します。

    navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
    

この API の詳細については、次のリンクを使用してください: http://docs.phonegap.com/en/edge/cordova_camera_camera.md.html#Camera

于 2013-08-30T10:58:01.463 に答える
1

sencha touchのソースコードをダウンロードすると、「src」ディレクトリ(解凍後)の中に「device」というディレクトリがあります。Camera.js はそのディレクトリにあります。sencha-touch-all-debug.js または sencha-touch-all.js には、"device" ディレクトリにあるすべての .js ファイルのソース コードが含まれていないようです。そのディレクトリを Android アセット ディレクトリ (例: file:///android_asset/www/lib/touch/device) に手動でコピーする必要があります。

また

Android アセットの任意の場所にディレクトリ デバイスをコピーできます (例: file:///android_asset/www/device)。次に、sencha touch を使用する前の最初の JavaScript 宣言で、次のコードを入力する必要があります。

Ext.Loader.setConfig ({
     paths: {
         'Ext.device': 'device'
     }
});

このコードは、「Ext.device」がディレクトリ「device」への参照であることを示しています。"device" ディレクトリが、javascript を呼び出す html ファイル (例: index.html) に対して相対的であることを確認してください。上記のコードから、「device」ディレクトリが html ファイルと同じ場所にあることを意味します。

于 2012-09-11T18:56:24.800 に答える
0

sencha フォーラムには、それに関するスレッドがあります。

問題は、Phongap - Cordova の命名にあるようです。Sencha Touch がロードされる前にこれを実行すると、問題が解決するはずです。

if(typeof window.Cordova != 'undefined') {
    window.PhoneGap = window.Cordova;
}
于 2012-07-19T06:59:12.113 に答える