Embedding Cordova WebView on Android
Cordova 1.9 からは、CordovaActivity を用いて、 Cordova をネイティブ Android アプリケーションの中でコンポーネントとして使用できます。このコンポーネントは Android では CordovaWebView として知られています。
1.9以降の新しい Cordova ベースのアプリケーションでは、昔の DroidGap アプローチが使用されているかどうかに関わらず、
CordovaWebView をメインビューとして使用します。
必要なものは Android アプリケーションの開発時と同じです。 Android の開発環境について知識があることが期待されます。 もし知識が十分にない場合は、このアプローチを使用する前に入門ガイドを参照して、 Cordova アプリケーションを作成することから初めてください。 これは Android Cordova アプリケーションを作成するメインアプローチではありません。そのため、この手順は現在は手作業となります。将来、この方法を自動化することも考えています。
必要なもの
- Cordova 1.9 またはそれ以降
- リビジョン15 以降の Android SDK
Android プロジェクトでの CordovaWebView 使用ガイド
bin/createを使用し commons-codec-1.6.jar を取得/frameworkにcdし、 cordova jar をビルドするためにant jarを実行 (これによりcordova-x.x.x.jar形式で .jar ファイルを/frameworkフォルダーに作成します)- cordova jar を Android プロジェクトの中の
/libsディレクトリにコピーします アプリケーションの
/res/xml以下にあるmain.xmlファイルを、以下と同様になるよう編集します。layout_height,layout_width,idはアプリケーションに合うように変更します<org.apache.cordova.CordovaWebView android:id="@+id/tutorialView" android:layout_width="match_parent" android:layout_height="match_parent" />アクティビティを、
CordovaInterfaceを実装 (implements) するように変更します。含まれているメソッドを実装することが推奨されています。/framework/src/org/apache/cordova/DroidGap.javaからメソッドをコピーしたいかもしれませんし、または自身のメソッドを実装したいかもしれません。以下は、インターフェースを使用したベーシックなアプリケーションのコードの一部です (ビューの id の参照は上のステップ4のid属性で指定されたものと一致することに注意してください):public class CordovaViewTestActivity extends Activity implements CordovaInterface { CordovaWebView cwv; /* アクティビティが最初に作成されたときに呼び出されます。 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); cwv = (CordovaWebView) findViewById(R.id.tutorialView); cwv.loadUrl("file:///android_asset/www/index.html"); }アプリケーションの HTML と JavaScript を Android プロジェクトの
/assets/wwwディレクトリにコピーします/framework/res/xmlからcordova.xmlとplugins.xmlを Android プロジェクトの/res/xmlフォルダーにコピーします