3

このコルドバ チュートリアルを使用して、コルドバ/phonegap アプリをセットアップしようとしています。私は Windows で開発を行っており、node.js がインストールされており、Node.js コマンド プロンプト内で作業しています。ダウンロードしてインストールしました:
Andorid SDK を here からダウンロードして に追加しPATH
antをダウンロードしてインストールしました。Java
JDK もダウンロードしてインストールしました。

PATHにはこれらが含まれています:
%ANT_HOME%\bin;%JAVA_HOME%\bin;C:\Program Files (x86)\Android\android-sdk\tools

cmd と入力androidすると、Android SDK マネージャーが開きます。
入力javaすると、コマンドに関する Java ヘルプが表示されます。
入力ant -versionすると、ant のバージョン (1.9.6) が表示されます。
入力cordovaすると、cordova ヘルプ コマンドが表示されます。

でコルドバを正常にインストールしnpm install -g cordova、ワークショップディレクトリを作成しました。次に、チュートリアルで提案されたプラットフォームとプラグインを追加してみました。以下は、Android プラットフォームとデバイス プラグインのみのコマンド プロンプト出力です。

C:\Users\Roman\All\Work\CriticalID\again>cordova platforms add android
npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz
npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz

C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin add cordova-plugin-device
Fetching plugin "cordova-plugin-device" via npm
npm http GET https://registry.npmjs.org/cordova-plugin-device
npm http 304 https://registry.npmjs.org/cordova-plugin-device
npm http GET https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz
npm http 200 https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz

プラットフォームとプラグインがインストールされているかどうかの確認:

C:\Users\Roman\All\Work\CriticalID\workshop>cordova platforms ls
Installed platforms:
Available platforms: amazon-fireos, android, blackberry10, browser, firefoxos, windows, windows8, wp8

C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin ls
No plugins added. Use `cordova plugin add <plugin>`.

C:\Users\Roman\All\Work\CriticalID\workshop>cordova build
No platforms added to this project. Please use `cordova platform add <platform>`.

インストールしたプラットフォームやプラグインがどれもインストール済みとして表示されません。との両方のworkshop\pluginsフォルダーworkshop\platformsも空です。

チュートリアル アプリは私のブラウザーと電話で動作します (PhoneGap デスクトップと電話アプリによって配置されます) が、カメラ API が必要なこの PhoneGap チュートリアルのパート 12 のような、より複雑なチュートリアルを試すと、カメラはサポートされていません。ブラウザ (明らかに) と私の電話 ( Error: Camera API is not supported).

編集

gitを使用してAndroidプラットフォームとプラグインを追加することで問題を解決しました。その解決策は以下です。ただし、何か見落としがある場合はお知らせください。
いくつかの機能を処理することになっているようですconfig.xmlが、私はそれを理解できませんでした。
Cordova 5.1.1 のすべて

4

1 に答える 1

0

ドキュメンテーションが古いため、問題が発生していると思います。さらに、Cordova を使用してゼロからアプリを作成する場合、または PhoneGap または PhoneGap ビルドを介してアプリを作成する場合は、一部の config.xml およびファイル構造が異なります。

何よりもまず、Cordova でアプリをビルドする場合、これらのコード行は機能しないようです。

cordova platforms add android
cordova plugin add org.apache.cordova.device
cordova plugin add cordova-plugin-device

すべてのプラットフォームとプラグインはGit経由で追加する必要があります。 Android プラットフォームはこちらプラグインのリストはこちら

たとえば、デフォルトの Cordova アプリを取得するには (インストールについては、上記の質問を参照してください)、以下をコピーして CMD に貼り付けます。

cd into your working directory
cordova create workshop com.name.workshop Workshop
cd workshop
cordova platform add https://github.com/apache/cordova-android.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-whitelist.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

プラグインの前にプラットフォームを追加する必要があることに注意してください。したかったwhitelistので追加し、チュートリアルで指示されたので andも追加しました。config.xmldeviceconsole

ここで and と入力するcordova platform lscordova plugin ls、空でないリストが返されます。

完全を期すために、カメラを使用する場合: 1) 以下を にコピーしますindex.html

<img id='image' src='' style="position:absolute;margin:5px;left:0px;top:0px;"/>
<button id="test_camera">Camera Test</button>
<script type="text/javascript" src="js/test.js"></script>

2) 新しいスクリプトtest.jsを作成し、以下を貼り付けます。チュートリアルがこの関数を作成する複雑な方法は好きではありません。これはより簡単です。

var changePicture = function() {
  if (!navigator.camera) {
      alert("Camera API not supported", "Error");
      return;
  }
  var options =   {   quality: 50,
                      destinationType: Camera.DestinationType.DATA_URL,
                      sourceType: 1,      // 0:Photo Library, 1=Camera, 2=Saved Album
                      encodingType: 0     // 0=JPG 1=PNG
                  };

  navigator.camera.getPicture(
      function(imgData) {
          $('#image').attr('src', "data:image/jpeg;base64," + imgData);
      },
      function() {
          alert('Error taking picture', 'Error');
      },
      options);

  return false;
};

$("#test_camera").on('click', function() {
    changePicture()
})

初期化コードはそのままにしておくことができますindex.js

次に、PhoneGap デスクトップ アプリと PhoneGap 電話アプリを使用して、電話でアプリケーションをテストします。私はかなり簡単です。これにはWindowsとAndroidを使用していますが、他のシステムについては知りません。

于 2015-07-20T11:12:27.960 に答える