Flutter window和Mac中webview2使用Cef替代

目前主流是使用 webview2,并且以实例的方式启动,无法作为widget组件在Flutter应用中内嵌,只能以新窗口的形式打开,体验不是很友好 也不太符合大多数软件开发的需求要求。

这里使用CEF(Chromium Embedded Framework)来替代webview2的方案,CEF是基于 Chrome Chromium 的一个开源内核,Google官方并未提供flutter版本的CEF,需要自己使用C++编写cpp去实现接口能力 或者使用第三方作者封装的依赖库。

目前接入有2种方式
  1. C++编写原生cpp + Flutter Plugin的形式接入

接入相对复杂、原生配置和 编写3端的代码量非常大(Windows端 C++;Mac端 Objective-C或swift;Flutter)

  1. 使用pub仓库中的一个大佬封装的CEF库(点击 webview_cef 查阅),这个方式较为便捷 也满足大多数要求

本文仅分享webview_cef的使用案例 不讨论C++形式。 这个库已经实现了大部分常用接口能力,当然 您C++能力过硬并且比较闲,也可以自己编写 C++ cpp的方式接入CEF。

接入案例

1、在 pubspec.yaml 中引入webview_cef

2、 在windows\runner\main.cpp中初始化 initCEFProcesses()

3、 ::MSG msg; 中加入 handleWndProcForCEF()启用 CEF 键盘输入推送

4、flutter run 即可,首次编译会下载 cef资源包,文件较大,会比较慢,等待即可

嵌入示例运行效果

相关推荐
钝挫力PROGRAMER1 分钟前
Windows Docker 环境搭建 GitLab CI/CD 流水线
windows·docker·gitlab·gitlab-runner
拿本唠嗑AI研究1 小时前
从电脑到手机:DeepSeek Harness Windows安装与手机互动教程(避坑完全版)
人工智能·windows·智能手机·deepseek·harness
面对疾风叭!哈撒给11 小时前
Windows 11 系统更新操作设置停止更新的时间
windows
小飞侠在吗17 小时前
Windows 下 Nginx 访问 127.0.0.1 报 50x 错误:根因是路径里 \t 被当成 Tab
运维·windows·nginx
xcyxiner19 小时前
flutter wsl2安装记录(使用宿主机虚拟机)
前端·flutter
Kevin Coding20 小时前
JsonConvert:适用于 Android、鸿蒙与 Flutter 的 JSON 转 Model 插件
android·flutter·harmonyos
水饺编程21 小时前
第5章,[Win32 章节] :贝塞尔样条曲线(一)
c语言·c++·windows·visual studio
辻弋20121 小时前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
言乐61 天前
Python实现自动拉人脚本示例
开发语言·windows·python·django·pygame
深念Y1 天前
OnlyOffice 打开来自 Windows/WPS 的 Office 文档时,出现排版错乱、文字空白、字体显示异常。
linux·windows·debian·onlyoffice·字体·wps·office