Android (9) Pieですべてのネットワーク接続タイプのHTTPとHTTPSを許可するには?
現在のAndroid 9 Pieからは、暗号化されていないリクエストは決して機能しません。また、デフォルトでは、システムはTLSを使用することを期待しています。この特集はこちらで読めますだから、HTTPSを介してのみリクエストを行うのであれば安全です。しかし、異なるサイトを経由してリクエストを行うアプリ、例えばブラウザのようなアプリの場合はどうでしょう。
Android 9 PieでHTTPとHTTPSのすべての種類の接続へのリクエストを有効にするにはどうすればいいですか?
101
3
これを実装する簡単な方法は、この属性を
AndroidManifest.xml
で使用し、すべてのhttp
をすべてのリクエストに対して許可することです。しかし、例えば、あるドメインには
http
を許可するが、他のドメインには許可しないなど、異なるリンクに対してさらに設定したい場合には、networkSecurityConfig
ファイルを用意する必要があります。Android 9 Pieでこれを行うには、Manifestの
application
タグ内に以下のようにnetworkSecurityConfig
を設定する必要があります。次に、
xml
フォルダ内に、マニフェストで設定したのと同じように、network_security_config
という名前のファイルを作成し、ファイルの内容を以下のようにすることで、暗号化なしですべてのリクエストを有効にすることができます。以上で設定は完了です。これで、アプリはすべてのタイプの接続に対してリクエストを行うようになります。このトピックの詳細については、こちらをご覧くださいを参照してください。
この問題に直面している
Android
またはReact-native
ユーザーの両方にとって、完全に機能する解決策は、以下を追加するだけです。android:usesCleartextTraffic="true"
をAndroidManifest.xmlファイルに追加してください。AndroidManifest.xmlファイルの{{533832}}のように、``の間にタグの間に {{533823}} を挿入します。
React Nativeアプリケーションをデバッグで実行する場合は、@Xenolion氏が言及した「xmlブロック」を、
/android/app/src/debug/res/xml
にあるreact_native_config.xml
に追加してください。以下のスニペットと同様です。