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资源包,文件较大,会比较慢,等待即可

嵌入示例运行效果

相关推荐
明月看潮生1 小时前
Windows_PyCharm Python语言开发环境构建
windows·python·青少年编程·pycharm·编程与数学
Rocket MAN2 小时前
在 Ubuntu 中配置 Samba 实现「特定用户可写,其他用户只读」的共享目录
网络·windows·ubuntu
胡耀超3 小时前
内网渗透技术全面指南——安全业务视角(基于《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》)
linux·windows·安全·web安全·网络安全·内网渗透·安全治理
恋猫de小郭6 小时前
Compose Multiplatform iOS 稳定版发布:可用于生产环境,并支持 hotload
android·flutter·macos·ios·kotlin·cocoa
扛枪的书生6 小时前
AD 侦查-SMB_2
windows·渗透·kali·提权·域渗透
yuanlaile7 小时前
Flutter开发HarmonyOS实战-鸿蒙App商业项目
flutter·华为·harmonyos·flutter开发鸿蒙
WangMing_X8 小时前
Flutter开发IOS蓝牙APP的大坑
flutter·ios
WDeLiang8 小时前
Flutter - 概览
flutter
QX_hao10 小时前
【firewall-cmd】--的作用以及使用方法
服务器·网络·windows
love530love11 小时前
PyCharm 加载不了 conda 虚拟环境,不存在的
ide·windows·pycharm·conda