FBro 指纹浏览器模块
[🕒 预计 10 分钟] | 难度:进阶
FBro 模块通过隔离的 C ABI 桥接层使用 FBro/FBrowser(CEF 135 x64),支持进程内嵌入、独立进程嵌入、独立顶层窗口三种宿主模式,并提供浏览器管理器、会话隔离、指纹配置(部分能力属于 VIP 指纹模块,需有效授权)与自动化联动能力。
| 项目 | 说明 |
|---|---|
| 模块 ID | lingbuilder.fbro.browser(另含 FBro 事件 / 会话 / 传输 / 自动化 / 受管对象 / 高级网络 / VIP 指纹等子模块) |
| 设计器控件 | FBro指纹浏览器 |
| SDK 依赖 | FBro 环境 SDK(CEF 135 x64,体积大,首次构建时按需下载) |
| 平台 | Windows x64(MSVC 工具链) |
启用模块与 SDK 下载
- 在活动栏「模块」页安装并启用 FBro指纹浏览器模块(见安装与管理模块)。
- 首次在项目中使用该模块构建(F5)、运行、原生预览或导出工程时,IDE 会弹出安装对话框,说明 SDK 名称、版本与体积,下载完成并校验 SHA-256 后自动继续。
- 下载失败、代理配置、完全离线安装见 SDK 按需下载。
设计器控件
在窗口设计器工具箱的模块分组中找到 FBro指纹浏览器 控件,拖到窗口上即可。窗口创建时,运行时会自动按设计器属性创建全部 FBro 浏览器控件,然后才触发「创建完毕」事件。
快速上手
包 FBro演示
使用 Win32窗口基础模块
使用 FBro指纹浏览器模块
类 MainWindow : 窗口
公开
事件 _MainWindow_创建完毕()
FBro_导航(FBro浏览器1, "https://www.baidu.com")
结束
结束类绑定事件(控件参数是裸 controlRef,处理器参数用 &处理器名):
绑定结果 = FBro_绑定事件(FBro浏览器1, "新窗口打开前", &处理新窗口)
结束
事件 处理新窗口()
目标地址 = FBro_取事件字段(FBro浏览器1, "target_url")
FBro_设置事件结果(FBro浏览器1, 2)
调试输出(目标地址)
结束事件系统要点:
- 事件名可使用中文名、官方英文名或登记的旧别名,运行时会归一化到稳定事件 ID;公开可绑定事件共 89 项。
FBro_取事件数据返回当前 UTF-16 JSON 事件包,FBro_取事件字段读取单个字段。- 复杂同步响应使用
FBro_设置事件响应JSON;FBro_设置事件结果和FBro_设置事件返回文本用于常见动作和文本返回值。 - 延迟决策先用
FBro_取事件延续取得受管延续句柄,再调用FBro事件_完成延续或FBro事件_取消延续;延续只能完成一次。 - 高频事件可用
FBro_设置事件采样率调整每秒投递次数,0表示暂停该事件。
获取资源响应(公开元数据)
可以绑定 资源响应到达(OnResourceResponse)和 资源加载完成(OnResourceLoadComplete)观察页面资源请求。处理器中使用 FBro_取事件字段 读取当前公开事件字段,例如:
绑定结果 = FBro_绑定事件(FBro浏览器1, "资源响应到达", &处理资源响应)
事件 处理资源响应()
资源地址 = FBro_取事件数据(FBro浏览器1)
状态码 = FBro_取事件字段(FBro浏览器1, "statusCode")
类型 = FBro_取事件字段(FBro浏览器1, "mimeType")
调试输出(资源地址, 状态码, 类型)
结束资源加载完成 还可读取 status、statusCode 和 receivedBytes。当前公开用户接口只承诺这些脱敏元数据,不直接向 .lcpp 暴露 CefResponse 响应正文或响应头对象;正文读取、响应过滤器和响应替换只有在对应版本公开 binding、受管句柄和安全示例均确认后才能使用。演示应使用自有测试域,不记录 Cookie、令牌、代理凭据或敏感响应内容。
修改资源响应内容(非 VIP 查找替换)
无需 FBro VIP 授权,即可对浏览器之后加载的全部资源正文做查找替换:
绑定结果 = FBro_绑定事件(FBro浏览器1, "浏览器创建完成", &浏览器1_创建完成)
事件 _窗体_创建完毕()
FBro_替换资源响应文本(FBro浏览器1, "原始价格", "会员价格")
结束
事件 浏览器1_创建完成()
FBro_导航(FBro浏览器1, "https://www.example.com/")
结束FBro_替换资源响应文本(控件名, 查找内容, 替换内容):按 UTF-8 字节流式查找替换,二进制安全;替换内容为空表示删除查找内容;重复调用以最后一次为准。FBro_清除资源响应文本替换(控件名):移除替换配置,之后加载的资源恢复原始正文。- 只修改响应正文,不改变响应头和状态码;对已加载页面不生效,重新导航即可见效。
- 时序提醒:
创建完毕事件内浏览器尚未就绪,FBro_导航请放在浏览器创建完成处理器中调用。 - 需要按地址整页替换响应(含响应类型)时,使用
FBro_替换资源响应内容 / FBro_替换资源响应文件,该族命令需要 FBro VIP 授权。
浏览器管理器
浏览器管理器_* 系列命令(36 条)负责多浏览器实例的编排:实例列表、页面选项卡管理、地址栏 / 详情控件 / 进度条绑定(均为 controlRef 裸控件引用)、工作区键隔离、按站点清除数据(含 Cookie)等。适合「一个界面管理多个浏览器实例」的工具型软件。
与自动化模块联动
FBro 命令面向内嵌浏览器的进程、窗口、HWND 与宿主生命周期控制;协议级页面自动化交给 CDP 模块——通过 FBro_取调试端口 / 浏览器外壳_取当前调试端口 取得调试地址后,CDP 模块即可连接 LingBuilder 内嵌 FBro 浏览器,实现取页面数据、点击、监听等自动化操作。
FBro_取调试端口 对三种宿主模式都有效:独立进程模式返回 Host 预留的端口;进程内模式在生成程序初始化 FBro 运行时时,按控件 enableDevTools 属性(缺省启用)决定是否预留本机回环端口并启用 CEF 远程调试——任一进程内控件启用即开启,全部关闭则不预留(CEF 的调试端口只在初始化时生效,无法事后补设或关闭,因此没有运行时设置端口的命令)。返回 0 表示尚未初始化、未启用开发者工具或端口预留失败。调试端口只在本机回环使用,不要暴露到公网。
常用命令参考
| 命令 | 说明 |
|---|---|
FBro_创建(控件名) | 按设计器属性创建指定 FBro 浏览器;空控件名创建当前窗口全部 FBro 控件(窗口创建时运行时已自动调用) |
FBro_导航(控件名, 地址) | 导航到目标地址 |
FBro_刷新(控件名) / FBro_停止(控件名) | 刷新 / 停止加载 |
FBro_后退(控件名) / FBro_前进(控件名) | 历史记录导航(可先用 是否可后退/前进 判断) |
FBro_是否加载中(控件名) | 查询加载状态 |
FBro_取缩放级别(控件名) / FBro_设置缩放级别(控件名, 级别) | 读取 / 设置宿主缩放 |
FBro_绑定事件(控件名, 事件名, &处理器名) | 绑定中文事件处理器 |
FBro_打开谷歌原生UI浏览器(控件名, 地址) | 基于当前实例会话创建独立的 Chrome Runtime 顶层浏览器 |
FBro_关闭(控件名) | 关闭并释放实例 |
FBro_取调试端口(控件名) | 取得内嵌浏览器的 CDP 调试端口 |
完整命令清单与各子模块接口在 IDE「模块详情 → 接口 → 模块公开信息」中查看。
依赖与平台限制
- 仅支持 Windows x64(MSVC 工具链)。
- FBro 环境 SDK 不随安装包内置,首次使用按需下载;SDK 的 include / lib / runtime / bridge 必须来自同一套发布包,不要只替换单个 DLL。
- VIP 指纹相关能力属于 FBro VIP 指纹模块,需要有效授权后使用。
- 桥接层对 UTF-8 / UTF-16 缓冲区生命周期有约束,事件字段一律通过
FBro_取事件字段等受管接口读取,不要缓存底层指针。
相关页面
- EdgeView 浏览器模块 / CEF3 浏览器模块 —— 三种浏览器内核怎么选
- CDP 模块开发 —— 协议级自动化
- 窗口设计器 —— 控件拖放与事件绑定