flutter webview_flutter 的坑

Flutter 中使用 webview_flutter 4.0 | js 交互 通过两个示例介绍了 webview_flutter 4.0 与网页交互的三种方案:拦截 URL,JavaScriptChannel 和 js 注入。 阅读详情
webview_flutter

官方例子:

 import 'dart:io';

 import 'package:webview_flutter/webview_flutter.dart';

 class WebViewExample extends StatefulWidget {
   @override
   WebViewExampleState createState() => WebViewExampleState();
 }

 class WebViewExampleState extends State<WebViewExample> {
   @override
   void initState() {
     super.initState();
     // Enable virtual display.
     if (Platform.isAndroid) WebView.platform = AndroidWebView();
   }

   @override
   Widget build(BuildContext context) {
     return WebView(
       initialUrl: 'https://flutter.dev',
     );
   }
 }

这个例子WebView只填了initialUrl

坑1、WebView的javascriptMode默认是JavascriptMode.disabled

既然是网页,怎么会少得了js,还默认是禁用状态。不友好设计!!!
所以WebView的加上JavascriptMode.unrestricted才能跑起来,不然会显示noscript标签的内容

WebView(
  javascriptMode: JavascriptMode.unrestricted,  // unrestricted: 无限制,disabled:禁用,这是默认状态
  initialUrl: widget.url,
)
坑2、需要设置网络权限,不然会出现web page not avaliable

/android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>
坑3、if (Platform.isAndroid) WebView.platform = AndroidWebView();键盘弹不出来

需要改成if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();

WebView遇到的及优化,flutter小程序引擎 uploadMessage = valueCallback; openImageChooserActivity(); } // android 3.0以上,android4.0以下:用的这个方法 public void openFileChooser(ValueCallback valueCallback, String acceptType) { uploadMessage = valueCallback; openImageChooserActivity(); } //android 4.0 - and 阅读详情

相关推荐

Flutter WebView开发避指南:从Cookie管理到JavaScript通信的常见问题解决

本文深入探讨了Flutter WebView开发中的核心挑战与解决方案,重点解析了Cookie管理失效的根源与精准操控策略,并详细阐述了JavaScript双向通信的稳定实现方法。通过对比官方webview_flutter与社区flutter_inappwebview插件,为开发者提供了选型建议与性能优化、安全加固的实践要点,旨在帮助开发者高效规避常见陷阱。

hp777的博客 198

FlutterWebView webview_flutter

WebView 在移动应用开发中占据了重要的地位,它为开发者提供了在应用中嵌入网页的能力。使用 WebView,你可以轻松地为用户提供丰富的网页内容,或是与第三方平台进行交互,而不需要离开应用界面。

Code Metaverse 1681

指南:Flutter webview_flutter插件升级到5.x后,这些API改动和常见问题你一定要知道

本文深度解析Flutter webview_flutter插件升级到5.x后的API重构与常见问题,帮助开发者顺利迁移。重点介绍了从Widget到Controller的架构变革、关键API迁移对照表、高频踩点解决方案,以及性能优化技巧,确保开发者在升级过程中避免常见陷阱。

weixin_42524530的博客 370

webview_flutter插件使用时报错

引入webview_flutter插件后,使用时,打开webview报错: PlatformException(unregistered_view_type, trying to create a view with an unregistered type, unregistered view type: 'plugins.flutter.io/webview') 解决方法: 参考:https://github.com/flutter/flutter/issues/25714 1、将Android模块中

qq_34484722的博客 2405

MySQL 8.0.46 安装与配置全攻略:从彻底卸载到环境搭建

这次我们来看 MySQL 8.0.46 的安装。对于开发者、运维或学生来说,MySQL 是绕不开的基础软件,但安装过程,尤其是旧版本残留导致的安装失败,是很多人踩过的。这篇文章不讲复杂概念,直接解决两个核心问题: 如何彻底卸载旧版 MySQL 以及 如何一步步安装并配置好 MySQL 8.0.46 。 无论你是第一次安装,还是因为旧版本没卸干净导致安装失败需要重装,这篇文章都能帮你搞定。我们会从卸载开始,覆盖 Windows 和 Linux 两大主流平台的安装、配置、启动和基础验证。整个过程会重点关注 文

weixin_33910385的博客 563

Flutter项目webview加载没有HTTPS证书的网页在Android和iOS设备上无法显示的解决方案

Flutter项目使用谷歌官方webviewwebview_flutter,加载自签名证书、证书失效、无证书等HTTPS网页地址时,在Android或pc浏览器中提示证书失效,在iOS设备上为空白页,为了加载自签名证书的网页,需要饶过iOS上的webview控件HTTPS证书校验。

he先森的博客 4106

Flutterwebview_flutter插件使用

Flutterwebview_flutter插件使用。

a526001650a的专栏 4305

Flutterwebview_flutter

webview_flutter没有SSL Error接口,也就是说等你的网页出现SSL 错误的时候这个插件无法捕捉处理,除非你改它的源码。下面这段是webview_flutter官网的例子,它有onHttpError、onWebResourceError、但没有任何捕捉 SSL 错误的选项,我曾经不信邪找了很久。通过日志发现可以取巧提醒SSL Error , SSL Error不会走onPageStarted,可以在这里加flag,然后在pageFinished的时候做判断即可。

lxjlxj2333的博客 1260

Flutter WebView遇到的

如果你做过原生 Android 开发,在 Android 平台的 WebView 中,默认 WebView 同样是不支持 input file 类型标签的,需要自己根据 WebView 提供的回调函数来实现对应的功能。相比 iOS 就简单了,iOS 的 WebView 默认就实现了这些功能,做 Android 开发的同学都会投来羡慕的眼神,为了让 WebView 支持这些功能,Android 开发同学需要自己实现拍照、从相册、从文件里选取图片,然后回传给 WebView ,这样 H5 里的文件选择标签才能生

star_nwe的博客 1839

Flutter使用webview_flutter 软键盘打不开

Flutter使用webview_flutter 软键盘打不开报错信息为:Using a workaround to show soft input on the correct display...

前端菜鸟好先森的博客 2268

flutter webview_flutterandroid12 下 软键盘打不开

flutter webview 软键盘不弹出解决方案

qq_34971100的博客 1279

Flutter WebView Windows避指南:常见问题与性能优化技巧

本文深入探讨了在Flutter Windows桌面应用中集成WebView2时遇到的核心挑战与解决方案。针对内存泄漏、性能卡顿、JavaScript通信及安全配置等常见问题,提供了从生命周期管理、启动加速、渲染优化到安全策略的实战避指南与性能优化技巧,帮助开发者构建更稳定高效的混合应用。

weixin_29021195的博客 65

Flutter WebView 网页截图全攻略:从踩到完美方案

本文探讨了在Flutter中实现WebView网页截图打印功能的技术方案及踩历程。作者首先尝试使用RepaintBoundary方案,但发现由于WebViewPlatform View,无法被Flutter渲染树捕获;转而尝试JS注入方案,又遇到CORS、CSP等限制;随后采用flutter_inappwebview的takeScreenshot()方法成功截取当前视口,但无法获取完整长图;尝试暴力缩放WebView高度时遭遇GPU纹理限制导致崩溃。最终解决方案是使用HeadlessInAppWebVi

m0_73231884的博客 340

flutter-webview用到第三方插件的

FlutterViewController 里面添加如下代码: unregistered type, unregistered view type: 'plugins.flutter.io/webview', null)

王铁涛技术博客 593

Flutter 4.x 版本 webview_flutter 嵌套H5

Flutter WebView使用踩指南:早期版本代码(使用WebView组件)会导致报错,正确写法应使用WebViewWidget(webview_flutter 4.x引入的新组件)。新版实现需要通过WebViewController配置JavaScript模式并加载URL:创建控制器后,使用级联操作符(..)链式调用配置方法,再将控制器传递给WebViewWidget。注意老版WebView组件已被弃用,WebViewWidget是当前推荐用法。

weixin_46600931的博客 641

【自记】第一次通过 Flutter2.0 编译带 webview_flutter插件的踩过程

1、安装 cocoapods 2、升级 ruby Mac自身的ruby 版本 2.x,通过ruby -v可以查看版本号。 为更新到ruby的最新版本,可通过以下命令解决: brew update brew install ruby 执行完命令后,ruby -v后其实还是原来的版本????,这是因为环境变量没有配置。因此,还有一个步骤就是配置环境变量。 echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

foreversilent的专栏 912

Flutter——踩之旅(webview_flutter 加载H5 包含输入框时页面跳转键盘无法收回)

程序猿日常 flutter——webview_flutter 加载H5 包含输入框时页面跳转键盘无法收回 问题描述 使用官方webviewwebview_flutter: ^0.3.22+1 ,在加载H5页面中,包含input标签输入框。 问题1:输入框获取焦点后,键盘弹出,Android出现输入的内容不显示,需要输入两次或多次才能输入成功,实际上是输入框没有真正获取焦点,可以注意下键盘的变化,可以输入的时候键盘右下角显示前往,输入后不显示的情况键盘右下角显示的回车,不同键盘展示的可能不同。 问题

五个木 3101

Flutter 工程化框架选择 — 混合开发的摸爬滚打_platformviewsservice

当然,华为的地图服务目前看起来没有商业授权的要求,但是它打包配置麻烦,特别是需要 HMS 的场景,所以如果为了省点钱又不怕麻烦,也可以考虑华为地图。其实我有预感,在之后的版本这部分逻辑还会出现变化,但是可能 3.0 和 3.3 的发布一样,并不会将这种变更放在 release note 里。,如果你打算用在公司的项目里,那么这个是逃不掉的,因为迟早平台会打电话联系你缴费,所以在评估时最好将这个费用问题和产品沟通下。在选型上的区别,最后,如果你还有什么关于 Flutter 工程或者框架的疑问,欢迎留言评论,

2501_90291320的博客 691
上一篇: flutter
下一篇: sass-loader node-sass 对应版本
咸鱼与梦想
博客等级 码龄9年 24粉丝 · 63原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值