最近有个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;  //hotelfinal 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" 即可(害我找了半天)

如:

<applicationandroid: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. 鸿蒙系统中的 WebView 加载H5页面出现net::ERR_CLEARTEXT_NOT_PERMITTED的解决方法

    目前在学习鸿蒙系统开发相关的应用,在加载H5页面的时候,在页面上显示出现这也错误提示 net::ERR_CLEARTEXT_NOT_PERMITTED,百度了一番,显示的结果都是在安卓系统上的解决办法 ...

  2. webView加载H5页面出现空白页的解决办法

    最近在做一个理财的项目,其中用到的H5页面比较多,在项目后期出现了很多bug,今天介绍下webView加载H5出现空白的解决办法 首先介绍下出现问题的场景,我们在一个Activity中镶嵌了一个H5的 ...

  3. iOS12 系统 webView加载H5页面,反复点击网页中视频播放 退出视频全屏 闪退解决方式。

    iOS 12系统webView 对H5播放器 有不兼容迹象,如果加载的H5视频是全屏播放的,频繁切换容易造成闪退. 在这个时候,就需要 前端 和 后台一起协商 解决这个问题. 其实这个问题很容易解决的 ...

  4. 关于WebView加载H5页面下载文件和下载完毕后自动打开文件

    前段时间有个项目需要在H5页面里下载文档文件,由于项目需求这里采用Android系统自带DownloadManager来进行后台自动下载管理,我们只需要稍微设置几个参数就进行文件下载了,并且下载进行时 ...

  5. Android webview加载H5页面调起微信支付

    场景 一个H5的页面,需要在app内用webview展示,然后涉及到支付,要求能够调用微信支付来付款,页面没有问题,但是写完出现了一些问题. 问题 页面不显示,展示空白 需要设置: webSettin ...

  6. 9.0 apk加载H5页面时报错WebView is not allowed in privileged processes, apk加载H5 webview加载不出来的问题

    apk加载H5页面时报错WebView is not allowed in privileged processes是需要hook下 fun hookWebView() {val sdkInt = B ...

  7. android动态设置错误页面,Android中替换WebView加载网页失败时的页面

    我们用webView去请求一个网页链接的时候,如果请求网页失败或无网络的情况下,它会返回给我们这样一个页面,如下图所示: 上面这个页面就是系统自带的页面,你觉得是不是很丑?反正小编本人觉得非常丑,很难 ...

  8. Android加载H5页面手机的返回操作

    最近接了一个新项目,项目说是混合开发,其实就是原生给个壳,实现全是前端的同学做的,接到项目后,领导说了很多bug,其中这个比较有趣,所以在这个记录一下,还原一下: 当我们登录成功后进入首页,然后再首页 ...

  9. android加载h5页面加进度条,使用Android仿微信加载H5页面的进度条

    这篇文章主要为大家详细介绍了Android仿微信加载H5页面进度条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言 Android中WebView打卡前端页面时受到网路环境,页面内容大小的影响 ...

最新文章

  1. 检测、量化、追踪新冠病毒,基于深度学习的自动CT图像分析有多靠谱?
  2. [转]JSP常用指令
  3. python快速编程入门例题-python编程入门知识练习
  4. 如何处理高并发情况下的DB插入
  5. 鲲鹏服务器php性能,对鲲鹏服务器的内存进行性能优化后的前后数据对比
  6. activiti5第五弹 serviceTask中的webserviceTask 以及 shellTask
  7. 下班约会时来了新需求,咋办?
  8. ExecutorService--线程池
  9. syntax error : missing ';' before identifier 'oper'解决方法
  10. 昨天写的档,今天就被转盗,51CTO老大们来管管
  11. MySQL InnoDB存储引擎为什么要用自增的主键?
  12. 微信小程序云数据库调用模板
  13. 我的USB DAC改装(MOD)流程(上)
  14. python列表字符全部改为大写_将包含字符串的Python列表转换为小写或大写
  15. 青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境
  16. access函数使用方法
  17. 开放地理空间信息联盟(OGC)简介
  18. 南红镶嵌的方法有哪些
  19. [编程题] 大富翁游戏(美团点评2017秋招)
  20. 在VS2012中添加.NET Framework 4.5.2

热门文章

  1. 应用comsol分析水力压裂对井眼附近应力场的影响
  2. 从1G说到5G:全球通信
  3. 5年测试开发工程师感悟——写给还在迷茫中的朋友
  4. mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解
  5. 异地数据库同步解决方案
  6. Cadence每日一学_08 | OrCAD绘制原理图 - 元器件封装FootPrint信息处理及显示
  7. 力扣21 - 合并两个有序链表【归并排序思维】
  8. (ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
  9. 解决警告You are running the esm-bundler build of vue-i18n. It is recommended to configure your bundler
  10. X61T装上Windows8 CP了