2017-09-29 28 views
0

アンドロイドコードワイドビルドのカスタムMainActivity.javaクラスをインストールする正しい/最良の方法は何ですか?cordovaアンドロイド:カスタムMainActivity.javaを指定する方法

私はすべて同じカスタムベースのアクティビティロジックを共有する複数のクライアントプロジェクトを持っています。そのため、すべてのロジックを含むcommon.MyActivityクラスがあり、そのインポートとサブクラス化にはMainActivityが必要です。

これは

package com.mycompany.mobile.myapp1; 
import com.mycompany.mobile.common.MyActivity; 
public class MainActivity extends MyActivity { /* extends CordovaActivity */ 
    public MainActivity() { 
     super("MyApp1:MainActivity"); 
    } 
} 

理想的には、私はプラグイン(共通ロジックをインストールする同じカスタムプラグイン)を介してこれを実行できるようにしたいと思いますが、問題はAPPIDがために異なっている、である私のMainActivityクラスです各プロジェクト、およびプラグインは、正しいフォルダにクラスをインストールするために、そのことを知る必要があります。

プラグインに変数としてappidを渡そうとしましたが、タグが変数を展開しないため、機能しません。

私はプラグインでそれを行うことができない場合、おそらくこれは何らかの方法でconfig.xmlで達成できますか?

答えて

0

after_plugin_installフックを使用して、カスタムMainActivity.javaがまだ存在しない場合はコピーしてください。​​3210で

scripts/hooks/updateMainActivity

<hook src="scripts/hooks/updateMainActivity" for="after_plugin_install"/> 

を追加し、基本的にそれは理想的ではないが、それは動作します

cp MainActivity.java platforms/android/com/src/yourcompany/mobile/*/MainActivity.java 

を行います。

カスタムプラグインのインストール時に実行するのではなく、プラットフォームに関係なく、プラグインがインストールされるたびにフックが実行されるので、理想的ではありません。実際にはこれを行うプラグインでなければならないので理想的ではありませんが、plugin.xmlでこれを達成する方法はありません。

もっと良い方法が見つかったら、私は答えを更新します。

関連する問題