最近有个flutter项目中根据搜索结果跳转到相应的H5页面发现老是报错,曾现在闲暇拉出来解决哈

先来看一个搜索功能的测试

已进入详情页面就提示错误,尴尬了。

只有去检测代码了撒

Search.dart


SearchItem item = searchModel.data[position];
print(item.url);
return GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => WebView(
url: item.url,
title: '详情',
)));
},

检测该处并无问题,于是继续向上查找,找到了Search_model.dart


class SearchModel{
String keyword;
final List<SearchItem> data;
SearchModel({this.data});
factory SearchModel.fromJson(Map<String,dynamic>json){
var dataJson = json['data'] as List;
List<SearchItem> data = dataJson.map((i)=>SearchItem.fromJson(i)).toList();
return SearchModel(data:data);
}
}

确认该处也没问题,那么问题可能是json格式化类SearchItem

class SearchItem


class SearchItem{
final String word; //xx酒店
final String type; //hotel
final String price ; //实时计价
final String star ; //豪华型
final String zonename ; //虹桥
final String districtname ; //上海
final String url ; SearchItem({this.word, this.type, this.price, this.star, this.zonename,
this.districtname, this.url}); factory SearchItem.fromJson(Map<String,dynamic>json){
return SearchItem(
word: json['word'],
type: json['type'],
price: json['price'],
star: json['star'],
zonename: json['zonename'],
districtname:json['districtname'],
url:json['url']
);
} Map<String, dynamic> toJson(){
Map<String,dynamic> data = new Map<String,dynamic>();
data['icon'] = this.word;
data['title'] = this.type;
data['price'] = this.price;
data['star'] = this.star;
data['zonename'] = this.zonename;
data['districtname'] = this.districtname;
data['url'] = this.url; return data;
}
}

打眼看去是否也没什么问题呀,那为是么无法进入详情页面呢,经过再次阅读代码发现toJson方法好像并无用处(这个好像是上次测试

Text(object)渲染对象,需要进行序列化时留下的)

于是果断干掉,再测试(当初断定是这个引起的因为我删除这个方法测试过一次OK了)

但是事实并非想象的那么简单(gradle.propertiesbuild.gradledependencies都改了一遍–抓狂),再次测试依然一样报错

最后一次次找,才发现实从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载

解决方法:在AndroidManifest.xmlapplaction节点中添加android:usesCleartextTraffic="true" 即可(害我找了半天)

如:


<application
android:name="io.flutter.app.FlutterApplication"
android:label="flutter_test"
android:usesCleartextTraffic="true"
android:icon="@mipmap/ic_launcher">
<!-- ... another configure -->
</application>

另外如果是ios 则在 info.plist中增加


<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

再测试哈


总算OK了,特此记录,避免再入坑

flutter 中使用 WebView加载H5页面异常net:ERR_CLEARTEXT_NOT_PERMITTED的更多相关文章

  1. Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决

    Android中经常会使用到WebView来加载H5的页面,如果H5页面中有音频或者视频的播放时,还没播放完就退出界面,这个时候会发现音频或者视频还在后台播放,这就有点一脸懵逼了,下面是解决方案: 方 ...

  2. iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent

    公司新开的一个项目..内容基本上是加载H5页面显示..当时觉得挺简单的..后来发现自己掉坑里了..一些心理历程就不说了..说这个项目主要用到的知识点吧..也是自己踩得坑. 首先说说..这个项目上的内容 ...

  3. Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果

    1.webView加载h5网页视频,播放不了,android3.0之后要在menifest添加硬件加速的属性 android:hardwareAccelerated="true". ...

  4. android中webView加载H5,JS不能调用问题的解决

    使用了html5 页面,使用webView加载后发现 超链接的锚点不可以用 为webView设置下面两句就好了: mWebView.getSettings().setDomStorageEnabled ...

  5. webview加载h5,关闭activity时,窗体泄露问题

    问题描述: webview加载一个含有input控件的html页面,当点击input控件是回调app的closepage方法[closepage中只有一个finish操作],出现窗体泄露问题. 分析: ...

  6. iOS中的webView加载HTML

    在日常开发中,我们为了效率会用到很多很多的WebView,比如在做某个明细页面的时候我们返回给你的可能是一个html字符串,我们就需要将当前字符串展示到webView上面,所以我们对HTML标签需要有 ...

  7. webview加载本地页面

    main.xml中布局webview,activity中设置如下 MyWebView=(WebView)findViewById(R.id.webView1); MyWebView.requestFo ...

  8. 小程序web-view加载H5信息不全

    满足小程序的web-view标签跳转网页形式 配置小程序后台的web-view(业务域名) 可打开关联的公众号的文章 通常实现逻辑 页面加载的时候赋值于一个data对象的值,然后赋值到web-view ...

  9. WebView加载html5页面

    mWebView = (WebView) findViewById(R.id.mwebview); mWebView.getSettings().setJavaScriptEnabled(true); ...

  10. iOS中webView加载URL需要处理特殊字符

    今天在项目中遇到webView加载URL时,因为URL中有特殊字符,导致页面无法加载,而且在- (BOOL)webView:(UIWebView )webView shouldStartLoadWit ...

随机推荐

  1. Bootstarp5第二弹

    四.网格系统 网格系统根据设备屏幕尺寸大小分为6类: col-<!--任意屏幕--> col-sm-<!--平板 - 屏幕宽度等于或大于 576px.--> col-md-&l ...

  2. 关于如何编写好金融科技客户端SDK的思考

    引言 回想起来,我在目前的团队(金融科技领域)待了有很长一段时间了,一直在做SDK研发,平时工作中经历过大刀阔斧一蹴而就的喜悦,也经历过被一个问题按在地上摩擦,无奈"废寝忘食"的不 ...

  3. Why WebRTC丨“浅入深出”的工作原理详解

    前言 近几年实时音视频通信应用呈现出了大爆发的趋势.在这些实时通信技术的背后,有一项不得不提的技术--WebRTC. 今年 1 月,WebRTC 被 W3C 和 IETF 发布为正式标准.据调研机构 ...

  4. Hyper-V由于虚拟机监控程序未运行

    以管理员权限打开命令提示符 输入bcdedit /set hypervisorlaunchtype Auto 重启计算机

  5. 南昌航空大学-软件学院-22206104-段清如-JAVA第一次Blog作业

    南昌航空大学-软件学院-22206104-段清如-JAVA第一次Blog作业 前言: 这个学期才开始接触java,到现在一个多月的时间,已经差不多可以写出一些基本的简单的程序了.对比上个学期学习的C语 ...

  6. golang 中的 cronjob

    引言 最近做了一个需求,是定时任务相关的.以前定时任务都是通过 linux crontab 去实现的,现在服务上云(k8s)了,尝试了 k8s 的 CronJob,由于公司提供的是界面化工具,使用.查 ...

  7. Oracle宕机之PMON (ospid: 248987): terminating the instance due to error 484(另附hugepage配置方法)

    数据库版本:11.2.0.4 RAC环境 操作系统版本:Asianux Server release 7.3 数据库报错分析 接到业务消息,应用无法访问,开发人员查看日志后发现无法连接数据库. 查看数 ...

  8. 五月二十五日jdbc基础知识点

    Jdbc连接数据库1.建立与数据库的连接1.1导入jdbc包1.2加载JDBC驱动java.lang.Class.forName(JDBCDriverClass);Class.forName(driv ...

  9. MordernC++之左值(引用)与右值(引用)

    左值与右值 C++中左值与右值的概念是从C中继承而来,一种简单的定义是左值能够出现再表达式的左边或者右边,而右值只能出现在表达式的右边. int a = 5; // a是左值,5是右值 int b = ...

  10. 和我一起学 Three.js【初级篇】:1. 搭建 3D 场景

    欢迎关注「前端乱步」公众号,我会在此分享 Web 开发技术,前沿科技与互联网资讯. 0. 系列文章合集 本系列第 6,7 章节支持微信公众号内付费观看,将在全系列文章点赞数+评论数 >= 500 ...