Monaca
テクノロジー
ノウハウ・TIPS

CordovaのAndroidプラットフォーム10系について

Monacaチームの小田川です。

Monacaで利用しているCordovaでは、Android Studio用のプロジェクトやXcode用のプロジェクトをベースとしたプラットフォームと呼ばれるプロジェクトが使用されています。

Monacaで開発するアプリの場合、このプラットフォームは、ビルドの際に必要になります。プラットフォームは、Monacaプロジェクトに設定されているプラットフォームのバージョンに合わせてビルドサーバ側で自動的にインストールされ利用されています。

Cordova 10用のMonacaプロジェクトの場合は、MonacaクラウドIDEのメニュー、

  • ビルド > ビルド環境の設定 > IOS > プラットフォーム
  • ビルド > ビルド環境の設定 > ANDROID > プラットフォーム
  • ビルド > ビルド環境の設定 > ELECTRON > プラットフォーム

から、プラットフォームのバージョンを選択できるようになっています。

Androidプラットフォーム10系

現在、Cordova 10用のMonacaプロジェクトで提供されているAndroidプラットフォームのバージョンは「9系」になりますが、最新版では「10系」の「10.1.0」がリリースされています。

Androidプラットフォーム10系では、新しい機能も提供されていますが、これまでとは仕様が変更されている機能もあります。Androidプラットフォーム10系の変更点については、下記を参照してください。

今回は、Androidプラットフォーム10系未満から10系へ変更した際の注意点を見ていきたいと思います。

Androidプラットフォーム10系の注意点

AndroidXのみサポート

Androidプラットフォーム10系からは、AndroidXが採用されているため、従来のAndroidサポートライブラリーを使用することが出来ません。そのため、Monacaプロジェクトでサードパーティー製Cordovaプラグインを使用している場合、対象のCordovaプラグインで従来のAndroidサポートライブラリーが使用されている場合は、ビルドエラーが発生します。

回避策としては、cordova-plugin-androidx-adapterのような従来のAndroidサポートライブラリーをAndroidXへ変換するCordovaプラグインを利用することで回避することが出来ます。

WebViewAssetLoaderのサポート

Cordovaでは、リソースにアクセスする際に「file://」スキームが使用されています。Androidプラットフォーム10系からは、WebViewAssetLoaderがサポートされたことにより、リソースにアクセスする際のデフォルトのスキームが、「file://」スキームから「https://」スキームに変更されています。この「https://」スキームは、カスタムスキームとして設定されています。

リソースが「http(s)://」からアクセスされることで、WebView内ではWebViewAssetLoader経由で処理されるようになります。

スキームの設定は、cookieLocalStorageIndexDB等のアプリデータのアクセスに影響するため、Androidプラットフォーム10系未満から10系へ変更した場合は、これらのアプリデータにアクセスすることが出来なくなります。そのため、Monacaプロジェクトで上記のアプリデータを使用している場合は、アプリデータの移行を検討する必要があります。

従来の「file://」スキームを使用したい場合は、以下のように、Monacaプロジェクトのconfig.xmlにAndroidInsecureFileModeEnabled設定を追加することで対応することが出来ます。

<!-- AndroidInsecureFileModeEnabledの設定例 -->
<platform name="android">
  <preference name="AndroidInsecureFileModeEnabled" value="true" />
</platform>

おわりに

今後、MonacaでもAndroidプラットフォーム10系に対応していく予定です。Androidプラットフォーム10系は、既存アプリの動作に影響が発生する可能性のあるアップデートになっています。そのため、MonnacaプロジェクトをAndroidプラットフォーム10系に変更した際に、アプリの動作に影響が発生する可能性がないか、今から確認することをお勧めいたします。

author img for keiji_asial

keiji_asial

前の記事へ

次の記事へ

一覧へ戻る
PAGE TOP