こんにちは。マっさんです。
今回は、開発途中でAndroid 8以前では出てこなかった、WebView上での”ERR_CLEARTEXT_NOT_PERMITTED”のエラーの解決策を記事にします。
解決方法
まずは解決方法です。"AndroidManifest.xml" ファイル の
<application android:usesCleartextTraffic="true"> ・・・ </application>
原因
Android 9 から 機密性の高いトラフィックを実現するため、デフォルトで、
cleartextTrafficPermitted="false"
になりました。その為、こちらで明示的に追記する必要が出てきました。
懸念点
この解決方法の場合、暗号化されていない、HTTP通信を許可することにもなってしまいます。
もし必要なドメインからのみの、セキュアな通信を受け付ける様にしたい場合は、
"res/xml/network_security_config.xml"
を作成し、以下のソースコードを追記してください。
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com(接続させたいドメイン名)</domain> </domain-config> </network-security-config>
以上です。