首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复flutter中的“net::ERR_CLEARTEXT_NOT_PERMITTED”

如何修复flutter中的“net::ERR_CLEARTEXT_NOT_PERMITTED”
EN

Stack Overflow用户
提问于 2019-04-09 20:01:07
回答 7查看 41K关注 0票数 25

我已经在flutter中实现了webView,但是它不能打开我在服务器上的php网站,这是我做错的地方。

我刚开始接触flutter,并尝试过webview将我的网站网页集成到我的应用程序中,但没有成功。

代码语言:javascript
复制
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,但是抛出了错误。

EN

回答 7

Stack Overflow用户

发布于 2019-04-10 12:30:22

在AndroidManifest文件中将usesCleartextTraffic属性设置为true,如下所示。

代码语言:javascript
复制
<application
....
android:usesCleartextTraffic="true"
....>
票数 57
EN

Stack Overflow用户

发布于 2020-02-12 23:43:47

在Flutter项目的主目录中,有三个主要文件夹:

代码语言:javascript
复制
- lib         =  your Dart code
- ios         =  generated structure for iOS platform
- android     =  generated structure for Android platform

我们对android目录很感兴趣。当你打开它时,你会看到“典型的Android应用程序结构”。

所以你必须做两件事:

1)在res中添加新文件

转到目录:

代码语言:javascript
复制
my_flutter_project/android/app/src/main/res/

创建xml目录(在res中!)

xml中添加新文件,文件名为:network_security_config.xml,内容为:

代码语言:javascript
复制
<?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应位于以下路径中:

代码语言:javascript
复制
my_flutter_project/android/app/src/main/res/xml/network_security_config.xml

您可以在此处找到有关此文件的更多信息:

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

2)修改AndroidManifest.xml

请转至:

代码语言:javascript
复制
flutter_project/android/app/src/main/AndroidManifest.xml

AndroidManifest.xml是XML文件,结构如下:

代码语言:javascript
复制
<manifest>
    <application>
        <activity>
            ...
        </activity>
        <meta-data >
    </application>
</manifest>

因此,对于<application>属性,您必须添加一行:

代码语言:javascript
复制
android:networkSecurityConfig="@xml/network_security_config"

请记住,您必须将其添加为属性(在application开始标记内):

代码语言:javascript
复制
<application

    SOMEWHERE HERE IS OK

>

不是作为标签:

代码语言:javascript
复制
<application>           <--- opening tag

    HERE IS WRONG!!!!

<application/>          <--- closing tag
票数 52
EN

Stack Overflow用户

发布于 2019-05-09 19:01:46

打开android清单文件(android/app/src/main/AndroidManifest.xml)并添加

应用程序标记的android:usesCleartextTraffic="true"

代码语言:javascript
复制
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="tangerine_ui"
    android:icon="@mipmap/ic_launcher"
    android:usesCleartextTraffic="true">
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55592392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档