はじめに

Cordova Android アプリで HTTP(≠ HTTPS) 通信をした際に出る net::ERR_CLEARTEXT_NOT_PERMITTED エラーの解決方法

TL;DR

  • Android P から cleartextTrafficPermitted="false" がデフォルトになった
    • 非暗号化(HTTP)通信がエラーになる
  • AndroidManifest.xmlandroid:usesCleartextTraffic="true" を追加すれば HTTP 通信を許可できる
    • Cordova Android: platforms/android/app/src/main/AndroidManifest.xml
  • config.xmledit-config を追加すれば OK
    • Cordova 9.0 環境だと問題が起きるが、8.0 や 10.0 だと問題ない(っぽい)
この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
  4. 詳細
  5. まとめ
  6. 参考文献

環境・条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ sw_vers
ProductName: macOS
ProductVersion: 11.1
BuildVersion: 20C69

$ node -v
v12.7.0

$ npm -v
6.14.5

$ cordova -v
10.0.0

$ cordova platforms
6.0.0
Installed platforms:
android 9.0.0
ios 6.1.1

Android 検証機: Huawei nova lite 2 (Android 9) (公式)

詳細

参考:


基本的に参考サイトに書かれている通り、以下 抜粋/補足追加/整理 した概要。

  • Android P から cleartextTrafficPermitted="false" がデフォルトになった
    • 非暗号化(HTTP)通信がエラーになる
  • AndroidManifest.xmlandroid:usesCleartextTraffic="true" を追加すれば HTTP 通信を許可できる
    • Cordova Android: platforms/android/app/src/main/AndroidManifest.xml
  • config.xmledit-config を追加すれば OK
    • Cordova 9.0 環境だと問題が起きるが、8.0 や 10.0 だと問題ない(っぽい)

ということで、(Cordova 9.0 環境でない限りは) config.xmledit-config を追加すれば解決する(はず)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version='1.0' encoding='utf-8'?>
<widget
id="com.example.app"
version="1.0.0"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<!-- 略 -->
<allow-intent href="http://*/*" />
<!-- 略 -->
<platform name="android">
<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
<!-- 略 -->
</widget>

まとめ

  • Android P から cleartextTrafficPermitted="false" がデフォルトになった
    • 非暗号化(HTTP)通信がエラーになる
  • AndroidManifest.xmlandroid:usesCleartextTraffic="true" を追加すれば HTTP 通信を許可できる
    • Cordova Android: platforms/android/app/src/main/AndroidManifest.xml
  • config.xmledit-config を追加すれば OK
    • Cordova 9.0 環境だと問題が起きるが、8.0 や 10.0 だと問題ない(っぽい)

参考文献

関連記事

この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list