web-dev-qa-db-ja.com

フラッターの「net :: ERR_CLEARTEXT_NOT_PERMITTED」を修正する方法

私はフラッターでwebViewを実装しましたが、サーバー上にある私のphp Webサイトを開いていませんが、私は間違っています。

私はひらひらするのが初めてで、webviewを自分のアプリケーションに統合するためにwebviewを試しましたが、うまくいきません。

Widget build(BuildContext context) {
    // TODO: implement build
    return WebviewScaffold(
      appBar: AppBar(iconTheme:IconThemeData(color: Colors.white),title: Text("Intake Form",style:new TextStyle(color: Colors.white,fontWeight: FontWeight.bold)),backgroundColor:Colors.indigoAccent,automaticallyImplyLeading: false),
     url: url,
      //url: "http://xxxxxxxx/",
       withJavascript: true,
       supportMultipleWindows: true,
      withLocalStorage: true,
      allowFileURLs: true,
      enableAppScheme: true,
      appCacheEnabled: true,
      hidden: false,
      scrollBar: true,
      geolocationEnabled: false,
      clearCookies: true,
       // usesCleartextTraffic="true"



    );
  }

出力はwebviewを実行していると期待していますが、エラーがスローされます。

6
Akash Agarwal

Flutterプロジェクトのメインディレクトリには、3つのメインフォルダーがあります。

- lib         =  your Dart code
- ios         =  generated structure for iOS platform
- Android     =  generated structure for Android platform

Androidディレクトリに興味があります。開くと、「典型的なAndroidアプリの構造」と表示されます。

したがって、2つのことを行う必要があります。

1)resに新しいファイルを追加する

ディレクトリに移動します。

my_flutter_project/Android/app/src/main/res/

xmlディレクトリを作成します(res!に)

そしてxml内に、名前がnetwork_security_config.xmlでコンテンツが新しいファイルを追加します。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

network_security_config.xmlはパスに配置する必要があります:

my_flutter_project/Android/app/src/main/res/xml/network_security_config.xml

network_security_config

ここで、このファイルの詳細を確認できます。

https://developer.Android.com/training/articles/security-config

2)AndroidManifest.xmlを変更します

移動:

flutter_project/Android/app/src/main/AndroidManifest.xml

enter image description here

AndroidManifest.xmlは、次の構造を持つXMLファイルです。

<manifest>
    <application>
        <activity>
            ...
        </activity>
        <meta-data >
    </application>
</manifest>

したがって、<application> PROPERTIESの場合は、1行追加する必要があります。

Android:networkSecurityConfig="@xml/network_security_config"

enter image description here

それをプロパティとして追加する必要があることを忘れないでくださいapplication開始タグ内):

<application

    SOMEWHERE HERE IS OK

>

タグとしてではない:

<application>           <--- opening tag

    HERE IS WRONG!!!!

<application/>          <--- closing tag
1
Boken

AndroidManifest.xmlで、[Android:usesCleartextTraffic="true"] なので

<application
    ......
    .......
    Android:usesCleartextTraffic="true"
    .............. >
    <.........
        ................... />

            ..........
    ...........>
</application>

Androidバージョン9では機能しません

1
Sumon
  • network_security_config.xmlファイルを作成します。
<?xml version="1.0" encoding="utf-8"?>
        <network-security-config>
            <base-config cleartextTrafficPermitted="true">
                <trust-anchors>
                    <certificates src="system" />
                </trust-anchors>
            </base-config>
        </network-security-config>

enter image description here

  • この2行をApplicationタグのManifestファイルに追加します。
0
Mihir Akoliya