# 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の注意点](https://press.monaca.io/takuya/4767)

## Custom Scheme プラグインの削除

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

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

```markup
<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を以下のとおり更新します。

```markup
<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` 設定を追加する必要があります。

```markup
<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>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ja.docs.monaca.io/release_notes/20201119_cordova10.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
