3

私はそれを理解しています:

phonegap build android

のファイルのコピーwwwが作成されますplatforms/android/assets/www

その後、プラットフォーム/Android フォルダーを IDE に Android プロジェクトとしてインポートし、そこからエミュレーターまたは電話で実行できます。

しかし、さまざまなプラットフォーム用にビルドするために使用できるコード ベースは 1 つwwwだけにしたいので、理想的には、ルートでのみアプリを変更できるようにしたいと考えています。

プロジェクトを実行する前に開始されるある種のファイルコピービルダーが必要だと思いますが、これについては経験がありません。Ant、Maven、およびGradleについて読みました....これでいいですか?

誰もがこれをどのように行っているか教えてもらえますか? それとも、すべてのプラットフォームで 1 つのコード ベースを使用するのは一般的ではないのでしょうか? (それがPhonegapの要点だと思いました!)

4

4 に答える 4

1

詳細については、PhoneGap 3 プロジェクトの構造を参照してください。基本的に、次のようなフォルダーがあります。

/merges - www フォルダーのマージ/オーバーライド用

  /android/cordova.js
  /ios/cordova.js

/platforms - ネイティブ コードを含む

  /android
  /ios

/plugins - プラグイン コード

  ... plugin native and stuff
  /www

/www - プライマリ フォルダー Web アプリ フォルダー

  cordojva.js
  index.htm
  etc...

個人的には PG3 にアップグレードしていませんが、これと同じ構造に従っています。OSX で Jenkins を使用して、TFS でファイルをチェックアウトします。次に、gruntjs を使用して、プラットフォーム フォルダーの www をオーバーライドします。次に、マージ フォルダーからプラットフォーム フォルダー内のものをオーバーライドします。最後に、必要なため、ant を使用して android をコンパイルし、xcode を使用して iOS をコンパイルします。

于 2013-08-19T15:32:16.033 に答える
0

単一のコード ベースを作成するために、各開発者がたどるさまざまな方法があります。私の場合、Android と Iphone の 2 つのフォルダーを作成し、iPhone の www フォルダーは Android の www フォルダーへのシンボリック リンクになっています。iPhone と Android で使用する別のスクリプト ファイルが必要な場合は、このコードを index.html ファイルに入れます。

  <!--iPhone 
 <script src="iphone/cordova-2.5.0.js"></script>
 <script src="iphone/DatePicker.js"></script>

-->
 <!-- android   -->

 <script src="android/cordova-2.5.0.js"></script>
 <script src="android/datePickerPlugin.js"></script>

iPhone で実行したい場合は、コメント タグを uncomment iphone と comment android に変更します。

于 2013-08-19T15:20:08.220 に答える
0

現在、この問題を解決するはずのコマンド ライン ツールが用意されています。それは私たちにとって合理的な解決策のようです。

コルドバ コマンド ライン ツール

以前は SVN を使用して、Android の場合は assets/www に、iOS の場合は www に同じフォルダーをチェックアウトしていました。

ファイル構造によっては、条件付きの JavaScript が必要になる場合があります

    <script type="text/javascript" charset="utf-8">
        var ua = navigator.userAgent;
        var platform = {
            ios: ua.match(/(iPhone|iPod|iPad)/),
            android: ua.match(/Android/)
        };
        if (platform.android) {
            document.write('<script src="android/cordova-2.2.0.js" type="text/javascript" charset="utf-8"><\/script>');
            document.write('<script src="android/childbrowser.js" type="text/javascript" charset="utf-8"><\/script>');
        } else if (platform.ios) {
            document.write('<script src="ios/cordova-2.2.0.js" type="text/javascript" charset="utf-8"><\/script>');
            document.write('<script src="ios/ChildBrowser.js" type="text/javascript" charset="utf-8"><\/script>');
        }           
    </script>
于 2013-08-19T15:20:39.713 に答える
0

すべてのプラットフォームに共通の 1 つのコードベースが必要です。Phonegap はコンテンツを /www フォルダーにラップして、そこから Android と iPhone をビルドします。

ある場所から別の場所にファイルをコピーするには (それが要件として表示される場合)、gruntjsを試してください。そのようなタスクを達成するための優れたツールです。

私の意見では、phonegap は独自のビルドを作成するため、ant、maven、gradle などの他のビルド ツールは回避できます。

于 2013-08-20T05:28:31.653 に答える