開発中のWebアプリをローカルに立ち上げて接続したい
ホストOSに開発中のWebアプリを立ち上げてエミュレータから接続したい。
開発時はhttpであることがほとんどなので、アプリからhttpで接続したいが、 Android 9以降はHTTP通信がデフォルトでは許可されない。
releaseビルドではhttpsのみの接続としたいのでdebugビルドのみhttpを許可する設定を行なう。
アプリのhttp通信を許可する
ネットワーク接続設定のxmlファイルを作成(debugビルド)
debugビルド用の設定、app/src/debug/res/xml/network_security_config.xml
を作成。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">10.0.2.2</domain>
</domain-config>
</network-security-config>
domain
に指定するのは接続先の指定。
ここではホストOSへの接続(10.0.2.2
)を許可している。
ネットワーク接続設定のxmlファイルを作成(release環境)
releaseビルド用にはapp/src/release/res/xml/network_security_config.xml
を作成。
releaseビルドではhttpsのみ許可(=デフォルト)としたいので、設定内容は空にしておく。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config />
AndroidManifest.xmlに接続設定を追加
AndroidManifest.xml
のapplication
タグにandroid:networkSecurityConfig
属性を追加し、
作成したxmlファイル(network_security_config.xml
を作成したので @xml/network_security_config
)を指定する。
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...>
以上で、debugビルド時のみ10.0.2.2へのhttp接続が可能となる。
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/