Skip to content

入门

包要求

要创建使用CEF包的项目,请向项目添加正确的编译器包引用。该包提供三种版本——每个支持的Chromium版本一种——你只需选择一种:

引用Chromium基线支持的操作系统
twinBASIC - Chromium Embedded Framework Package v49Chromium 49Windows XP+
twinBASIC - Chromium Embedded Framework Package v109Chromium 109Windows 7+
twinBASIC - Chromium Embedded Framework Package v145Chromium 145Windows 10+

除非你特别需要支持较旧的操作系统,否则请使用v145。包源代码针对所有三个版本编译——选择引用会设置 CEF_VERSION 编译器常量,该常量选择匹配的API。

通过项目引用(Ctrl-T)→TWINPACK PACKAGES添加引用。勾选所需的CEF包,关闭对话框,并重启编译器。添加后,CefBrowser出现在窗体设计器工具箱中。

WARNING

较旧的Chromium版本不应用于浏览来自公共Internet的不受信任内容——它们带有未修补的安全漏洞。v49和v109仅适用于浏览器仅加载受信任的本地或内部内容的严格受控环境;对于一般Web浏览,请使用v145。

下载运行时

WebView2不同,CEF不依赖系统安装的运行时。Chromium二进制文件(libcef.dll及相关文件)作为单独下载提供,必须与应用程序一起安装——无论是在开发时还是部署时。

下载与CEF版本和应用程序位数匹配的运行时ZIP:

版本Win32Win64
v49cefRuntime49_win32.zipcefRuntime49_win64.zip
v109cefRuntime109_win32.zipcefRuntime109_win64.zip
v145cefRuntime145_win32.zipcefRuntime145_win64.zip

完整版本列表和发行说明见CEF运行时发布

将ZIP解压到 %LocalAppData%\twinBASIC_CEF_Runtime\。ZIP内的版本标记文件夹——例如 145_0_7632_160_Win64——必须直接放在该路径下,包含 libcef.dll 及其同级文件:

text
%LocalAppData%\twinBASIC_CEF_Runtime\145_0_7632_160_Win64\libcef.dll
%LocalAppData%\twinBASIC_CEF_Runtime\145_0_7632_160_Win64\chrome_elf.dll
%LocalAppData%\twinBASIC_CEF_Runtime\145_0_7632_160_Win64\…

启动时,CefBrowser会自动搜索此默认位置。如果找不到 libcef.dllError事件会报告搜索的确切路径。

要指向不同的文件夹——例如随安装程序提供的便携并行部署——在Create事件期间分配EnvironmentOptions.BrowserExecutableFolder

vb
Private Sub CefBrowser1_Create()
    CefBrowser1.EnvironmentOptions.BrowserExecutableFolder = _
        App.Path & "\cef145_win64"
End Sub

位数必须匹配

运行时位数必须与应用程序位数匹配——32位twinBASIC构建需要Win32运行时,64位构建需要Win64运行时。混用会导致 libcef.dll 加载失败,通过Error事件报告。

在窗体上创建CefBrowser控件

包引用和运行时就位后,CefBrowser在窗体设计器工具箱中可用。像其他控件一样将其放到窗体上:

vb
Private Sub Form_Load()
    CefBrowser1.Navigate "https://www.twinbasic.com"
End Sub

控件异步启动——第一个用户可见事件是Ready,在辅助浏览器进程启动且IPC连接后触发。在此之前,导航、脚本和大多数属性访问器会引发"CefBrowser控件未就绪"(运行时错误5)。

CefBrowser控件属性

切换属性面板查看设计时可见属性:DocumentURL(控件在Ready触发后自动导航到的初始URL)、ZoomFactorUserAgent以及标准的矩形可停靠属性(大小、AnchorsDock)。

完整参考参见CefBrowser类参考;底层Chromium运行时支持的功能请查阅Chromium Embedded Framework文档

示例

如果你更喜欢从示例开始,示例1b——Chromium Embedded Framework示例可在新建项目对话框中找到。它几乎逐功能镜像示例1a——WebView2示例,在CEF包尚未暴露WebView2等效功能的地方会指出差异。

下一步

twinBASIC及其LOGO版权为作者"韦恩"所有