Cordova 10 の変更点

Android

  • Cordova Android プラットフォーム: 「9.0.0」 にアップデート ( API レベル 29 )

  • Gradleバージョン: 「6.5」 にアップデート

iOS

  • Cordova iOS プラットフォーム: 「6.1.1」 にアップデート

  • Xcode: 「11.3」 (Xcode 12 サポートは、別途お知らせいたします。)

iOSアプリアイコン (20x20)

iOS アプリアイコンのサイズ 20x20 の登録が必要となります。 次の手順にて登録をお願いいたします。

  1. Monaca クラウド IDE から 設定 → iOSアプリ設定 を選択

  2. アイコン セクションの「20 x 20」に画像を登録

WKWebViewの注意点

Cordova 10 からは、iOS で利用されるWebViewについて、従来の「UIWebView」から「WKWebView」に更新されました。Cordova 10 のプロジェクトでは、UIWebView を利用できなくなりましたので、ご注意ください。

参考:WKWebViewの注意点

Custom Scheme プラグインの削除

Cordova 10 より「Custom Scheme」プラグインと同等の機能を、Cordova が標準搭載します。そのため、プラグインとして提供していました「Custom Scheme」プラグインは不要となり、プロジェクトでご利用されていた場合は、プロジェクトから削除されます。

また、Cordova に搭載された機能を利用するため、下記の設定が「config.xml」に追加されます。

<platform name="ios">
  <preference name="scheme" value="monaca-app"/>
  <preference name="hostname" value="localhost"/>
</platform>

iOS LocalStorageデータの引継ぎ

Cordova 10では、WebViewが「UIWebView」から「WKWebView」に変更となりました。 そのため、LocalStorageデータの引継ぎは、Cordova9で「WKWebViewEngineプラグイン」を利用していた場合のみ対応が可能となっております。 また、Cordova 9のプロジェクトにおける、CustomSchemeプラグインの利用有無によりデータ引継ぎの方法が、下記のとおり異なります。

※ Cordova 9でUIWebViewを利用していた場合は、Cordova 10からはWKWebViewが利用されるため、LocalStorageデータを引継げません。 また、Monacaカスタムデバッガーにおいても、LocalStorageデータの引継ぎは対応しておりませんのでご注意ください。

CustomSchemeプラグインを利用していた場合

既存のCordova 9プロジェクトにおいて、CustomSchemeプラグインを利用していた場合は、 CustomSchemeプラグインを削除し、config.xmlのpreferenceを以下のとおり更新します。

<preference name="scheme" value="monaca-app"/>
<preference name="hostname" value="monaca.io"/>

Android 外部ストレージの注意点

Cordova 10 から標準利用される Android 10(API レベル 29)において、データ保存領域についてのセキュリティが変更されました。この変更により一部のプラグインでは、追加の設定が必要になることがあります。

Monaca 提供のプラグインについては、「cordova-plugin-media-capture」が該当します。Android 用ストア版 Monaca デバッガーでは、「cordova-plugin-media-capture」のデータの保存先にアクセスするため、 「requestLegacyExternalStorage」設定が適用されています。

ビルドしたアプリやカスタムビルドデバッガーにおいては、「cordova-plugin-media-capture」を利用する際に、「config.xml」の widget タグに andorid 名前空間 設定を追加し、 requestLegacyExternalStora 設定を追加する必要があります。

<widget xmlns:android="http://schemas.android.com/apk/res/android">

<platform name="android">
  <edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
    <application android:requestLegacyExternalStorage="true"/>
  </edit-config>
</platform>

最終更新