JxBrowser使用心得和带中文翻译的文档分享

2020/10/04 09:39
阅读数 553

在被Jcef的时不时卡死折磨之后,我开始了翻译JxBrowser文档的旅程(非手工翻译)。

接触了JxBrowser后,我被它强大的力量所折服,不得不说,比Jcef好太多,让我直接放弃了Jcef。最重要的一点,它不需要JCEF那么多花里胡哨的编译。(用作个人项目确实是个不错的选择)

JxBrowser是一个跨平台的Java库,允许将基于Google Chromium的Web浏览器组件集成到Java Swing / AWT / JavaFX应用程序中。使用JxBrowser,您可以将轻量级Swing / JavaFX组件嵌入到Java应用程序中,以显示现代网页,支持最新的Web标准,如HTML5,CSS3,JavaScript等。

这是他官网的描述:JxBrowser可以使用HTML + CSS + JavaScript构建Java桌面应用程序UI。这意味着您可以使用任何现代HTML5 UI工具包(如easyui,bootstrap)来构建用户界面友好的Java桌面应用程序。您可以解雇Swing/AWT开发人员,因为HTML + CSS + JavaScript开发人员可以构建Java应用程序的GUI,它大大降低了Java项目开发的成本。

(Swing/AWT开发工程师:???)

(注:以上翻译内容请自行对照谷歌翻译,不保证其真实性)

获取JxBrowser的最新版本:https://jxbrowser-support.teamdev.com/release-notes/2020/v6-24-3.html (英文看不懂?谷歌浏览器右键,翻译成中文)

截止本文发布日期,6.x最新版本是2020年3月16号的6.24.3。

 

相关资料均可在百度云盘获取(开发文档[英文原文档,带中文翻译的文档],带中文翻译的帮助文档(来源:https://jxbrowser.support.teamdev.com/support/solutions),所需的Jar(6.24.3),Demo。因为我最早接触的是6.23.1,所以带中文翻译的开发文档是6.23.1版本):https://pan.baidu.com/s/1P7gMI8-0Bi8aIDE1d4C0ng 提取码: k6xp --来自百度网盘超级会员v4的分享

文档资料CSDN下载地址:https://download.csdn.net/download/xymmwap/12909790 (下载需要1积分,CSDN下载积分用不完的朋友可以去这里下载,让本人赚点积分,以备偶尔需要的下载。感谢!) 

开发文档用于写程序时查找类/方法的用法,帮助文档用于入门、进阶、删库跑路等。建议先把帮助文档看一遍,照着例子写一遍。

开源了个人项目供大家参考(需添加许可证信息才能正常运行,许可证怎样获得?百度一大堆。JxBrowser官网可以申请30天试用),功能和PowerOfLengedJcef差不多【含 脚本管理,代码模板生成器,JxBrowser帮助文档】:

github:https://github.com/lieyanfeimao/PowerOfLongedJxBrowser.git
码云:https://gitee.com/edadmin/PowerOfLongedJxBrowser.git

因为JxBrowser已经提供了详细的Demo,这里我没有像Jcef一样去写个Demo工程了。

本文使用的Jxbrowser版本是:jxbrowser-6.24.3

因为优秀,所以它并不免费,请自行想办法获取许可证。如果它能帮到你,而你也资金充裕,建议购买正版。(钱是个好东西)

优点:

完美支持各大视频网站的视频播放,页面流畅不卡死(不能说百分百),支持Java与JS交互,支持ajax数据监听。总之,牛的一匹。

我很喜欢这种JAVA和JS交互的方式,例如:var a=Java.test();

瑕疵:

个人觉得不友好的地方,对iframe页面操作不甚方便,使用开发者工具[Debug模式]需要连接谷歌服务器(因为防火墙在,连不上),开发者工具很怪,操作没谷歌浏览器的方便。Jcef在这两点上做的就比较好。

另外,经过长时间沉淀,JxBrowser会在C盘下会生成大量缓存/数据文件,很容易撑爆磁盘。请参照帮助文档 文献资料(Documentation)>浏览器引擎(Browser Engine)>清除缓存(Clearing Cache) 进行处理

主要类介绍

先大概介绍一下常用的类,免得写代码的时候一脸懵逼(讲我用过的吧)。相关类具体的说明请查看开发文档。

Browser:浏览器主类,处理浏览器的相关操作,如执行JS、监听事件等等,是一个非常重要的类。当你对浏览器做一些设置,如监听事件、前进后退等,可查阅此类的文档。它位于:com.teamdev.jxbrowser.chromium

BrowserContext:描述浏览器实例的上下文。提供指向将存储Chromium数据文件(如cookie,历史记录,缓存)的目录的路径,并提供对上下文级别功能(如NetworkService)的访问。具有相同BrowserContext的两个Browser实例将共享会话cookie和缓存文件。这个类我在同时启动多个应用时用到,因为各个应用不能共用同一个数据文件目录,所以,我用它为应用分配不同的数据文件目录。

BrowserPreferences:浏览器实例和全局库首选项。设置浏览器的启动参数等。一般在程序启动时设置,也可以使用Browser的setPreferences()方法设置

NetworkService:提供对网络级功能的访问。这个类很有用,可以用它实现对网络请求的操作。我试了下,用了它后程序比较不稳定。

JS开头的类:对JS的相关处理

com.teamdev.jxbrowser.chromium:监听器,事件

com.teamdev.jxbrowser.chromium.dom:操作DOM对象的接口

com.teamdev.jxbrowser.chromium.swing:用于swing下的一些handler实现类,例如监听网页返回数据使用的是DefaultNetworkDelegate

 

官方Demo里面已经有了各种骚操作的用法,这里我只说些常用的和一些踩的坑。(官方Demo在哪?在百度云盘里)

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部