当前位置: 首页 > ds >正文

跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用

JxBrowser 是 TeamDev 开发的跨平台库,用于在 Java 应用程序中集成 Chromium 浏览器。它支持 HTML5、CSS3、JavaScript 等,具备硬件加速渲染、双向 Java 与 JavaScript 连接、丰富的事件监听等功能,能处理网页保存、打印等操作,助力 Java 应用高效展示和交互网页内容。

JxBrowser 现在支持 Chrome 扩展程序啦!您可以从 Chrome 应用商店或 CRX 文件中安装、更新并与几乎任何 Chrome 扩展程序进行交互。

An extension in the JxBrowser demo application

为什么我需要扩展程序? 

Chrome 扩展程序非常实用。它们不仅丰富了 Browser 的功能,还显著提升了用户的效率和舒适度。更重要的是,它们为用户提供了一个既经济又高效的方式,去访问那些在桌面软件中可能无法直接使用或实现起来不切实际的功能。
例如,许多第三方服务如 1Password、Okta 和 Salesforce 很难集成到桌面应用程序中,但它们提供了方便的 Chrome 扩展程序。
此外,扩展程序还提供了诸如翻译、语法检查和校对等功能。使用 JxBrowser ,您可以在 Java 桌面应用程序中享受这些功能,而无需额外费用。

如何安装扩展程序 

在​​​​​​​JxBrowser 中安装 Chrome 扩展程序有两种方法:通过 CRX 文件或从 Chrome 应用商店安装。
1、通过 CRX 文件安装扩展程序:您只需要 CRX 文件本身和一行代码:

CRX 文件安装扩展程序code

您可以将 CRX 文件与您的应用程序一起打包,并在应用程序首次启动时以编程方式安装它们。
不过,从未知来源安装时需谨慎,因为 ​​​​​​​JxBrowser 从 CRX 文件安装扩展程序时不会验证来源,虽然 Chrome 应用商店会对公共扩展程序签名并可验证来源,但自定义内部扩展程序无法验证。
2、直接从 Chrome 应用商店安装扩展程序:默认情况下,我们禁止以这种方式安装扩展程序。要允许用户从 Chrome 应用商店安装扩展程序,您需要显式允许这一行为:

直接安装code

接着,终端用户可以在 Chrome 应用商店中找到该扩展程序,只需点击添加到 Chrome 即可。

添加到 Chrome

如何与扩展程序交互 

大多数扩展程序都会在 Google Chrome 工具栏中添加一个图标。此图标称为“扩展程序操作”,用户可以点击它。

扩展程序操作

JxBrowser 不显示 Chrome 工具栏,但允许您通过代码点击扩展程序操作。

点击扩展程序的代码

如果需要的话,还可以在用户界面中显示扩展程序操作。

操作显示

当用户点击图标时,大多数扩展程序会打开一个小弹出窗口,即 “扩展程序操作弹出窗口”。默认情况下,​​​​​​​JxBrowser 为每个弹出窗口打开一个新窗口,但您可以覆盖此行为:

覆盖新窗口

扩展程序可以创建包含任意 Web 内容的弹出窗口。例如,它们可以打开设置页面,或者将用户带到第三方网络服务进行授权。

跳转三方界面

默认情况下,​​​​​​​JxBrowser 会阻止扩展程序的弹出窗口,但您可以更改此行为:

更改阻止弹出窗口

如果您想显示所有扩展程序弹出窗口,请使用 ​​​​​​​JxBrowser 提供的默认实现:

默认实现代码


注意:JxBrowser 不支持 Chrome 扩展程序 API 的某些部分,主要是因为在嵌入式 Browser 的上下文中它们没有意义。
要查看最新的限制列表,请查阅文档中的 不支持的 API 列表。

http://www.xdnf.cn/news/10156.html

相关文章:

  • Apache SeaTunnel 引擎深度解析:原理、技术与高效实践
  • 【Linux 基础知识系列】第四篇-用户与权限管理
  • c/c++的opencv霍夫变换
  • 阻止H5页面中键盘收起的问题
  • CTFSHOW Pwn94 WP
  • [原创](Windows使用技巧): Windwos11如何设置局域网共享访问? (多图详解)
  • 在Linux上安装Docker并配置镜像加速器:从入门到实战
  • PostgreSQL 临时表空间
  • AWS API Gateway 配置WAF(中国区)
  • 《智慧医疗分级评价方法及标准(2025版)》征求意见函全面解读:人工智能医疗应用的评价体系与指南方向
  • 无线通信模块简介
  • 智能流体仿真软件AICFD 2025R1新版本功能介绍
  • 每日c/c++题 备战蓝桥杯(Cantor 表)
  • LangChain实战:MMR和相似性搜索技术应用
  • 【python深度学习】Day 40 训练和测试的规范写法
  • 【C++】C++面向对象设计的核心思想之一: 接口抽象、解耦和可扩展性
  • Python打卡训练营Day40
  • 半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司
  • 如何迁移SOS数据库和修改sos服务的端口号
  • php:5.6-apache Docker镜像中安装 gd mysqli 库 【亲测可用】
  • Asp.Net Core FluentValidation校验框架
  • 3. JavaScript基础:自增自减、运算符优先级、条件语句、循环与错误处理
  • 跟我学c++中级篇——动态库的资源处理
  • 2025年渗透测试面试题总结-匿名[校招]红队攻防工程师(题目+回答)
  • 机器人变量类型与配置
  • 引领机器人交互未来!MANUS数据手套解锁精准手部追踪
  • 大数据量下的数据修复与回写Spark on Hive 的大数据量主键冲突排查:COUNT(DISTINCT) 的陷阱
  • Linux入门——入门常用基础指令(3)
  • 课程介绍:《ReactNative基础与实战指南2025》
  • 【前端优化】使用speed-measure-webpack-plugin分析前端运行、打包耗时,优化项目