基于 Java 的浏览器——JxBrowser使用分享

软件介绍

JxBrowser 是一个基于 Java 的浏览器,它使用 Chromium 引擎来提供高性能的网页渲染和丰富的功能。它支持多种 GUI 框架,如 Swing、JavaFX 和 SWT,使得在 Java 应用程序中嵌入浏览器组件变得简单。

JxBrowser 是一个适用于多种用途的嵌入式浏览器,它可以被用于开发混合应用程序、结账和自助服务终端、数字广告、游戏、网页抓取、自动化脚本,以及桌面和平板电脑应用程序。以下是 JxBrowser 在这些不同应用场景中的具体应用:

混合应用程序

JxBrowser 可以被集成到混合应用程序中,为用户提供丰富的网页内容,同时允许开发者利用 Java 和其他后端技术来处理业务逻辑。

结账&自助服务终端

自助服务终端和结账系统可以使用 JxBrowser 来展示网页形式的用户界面,处理交易和信息查询,同时保持用户界面的现代性和易用性。

数字广告

JxBrowser 可以用于创建交互式数字广告,包括那些需要实时更新内容或与用户互动的广告。

游戏

游戏开发者可以使用 JxBrowser 来创建基于网页的游戏,或者在游戏中集成网页内容,例如游戏内商店或社区论坛。

网页抓取

JxBrowser 可以用于开发网页抓取工具,通过模拟用户交互来获取网页数据,支持自动化测试和数据挖掘应用。

自动化

自动化脚本和工具可以利用 JxBrowser 来模拟用户在网页上的操作,进行自动化测试、监控或其他任务。

桌面及平板电脑应用程序

JxBrowser 可以被集成到桌面或平板电脑应用程序中,提供内嵌的网页浏览功能,从而扩展应用程序的功能性。

官方文档

https://jxbrowser-support.teamdev.com/zh/docs/tutorials/ide/intellij-idea.html#%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F

功能和特性

  1. 配置文件管理:JxBrowser 允许用户管理 Chromium 配置文件,包括导航历史、cookie、缓存、密码等用户数据。
  2. 浏览器实例创建:通过 Profile.newBrowser() 方法可以创建新的 Browser 实例。如果使用 Engine.newBrowser(),浏览器将在默认配置文件下创建。
  3. 浏览器视图嵌入:JxBrowser 可以在 Swing、JavaFX 和 SWT 应用程序中嵌入显示网页内容的可视化组件。
  4. 导航功能:支持加载 URL 和文件、过滤导航请求、处理导航历史等。
  5. 内容显示:JxBrowser 可以显示各种类型的内容,包括图片、视频、PDF、Flash 等,并支持访问网页的 HTML 内容。
  6. DOM 访问:允许访问 DOM 文档、查找元素、修改 DOM 结构等。
  7. 弹出窗口处理:描述了如何处理、显示或抑制弹出窗口。
  8. 文件下载管理:提供了管理文件下载、跟踪下载进度、在下载完成时获得通知等功能。
  9. 网络功能:包括代理、网络事件、身份验证、TLS、客户端证书身份验证等。
  10. 缓存管理:支持多种缓存类型,如 HTTP 缓存、Blink 缓存、HTML5 应用程序缓存等。
  11. Cookie 管理:提供了获取、修改和删除 cookie 的功能。
  12. 身份验证处理:支持处理 Proxy、Basic、Digest 或 NTLM 身份验证请求。
  13. 插件支持:支持 Chromium 插件,允许获取有关所有已安装和可用的 Chromium 插件的信息。
  14. 打印功能:支持使用 JavaScript 或 JxBrowser API 进行网页打印。
  15. 密码管理:提供了保存、更新和管理用户在新在线表单中输入的密码的功能。
  16. 用户数据配置文件:描述了如何保存、更新和管理用户数据,如输入到网络表单中的名字、地址、电子邮件等。
  17. 信用卡管理:介绍了如何保存、更新和管理信用卡信息。
  18. 媒体支持:概述了支持的视频和音频格式,描述了如何控制音频、获取有关可用网络摄像头和麦克风等信息。
  19. 缩放控制:允许缩放网页内容,并在缩放级别更改时获得通知。
  20. 拼写检查器:提供了配置语言以进行拼写检查、在自定义词典中添加或删除单词、禁用拼写检查等功能。
  21. 部署和构建:描述了如何在 Java 应用程序中部署 JxBrowser,以及如何使用 JxBrowser 所使用的 Chromium 构建。
  22. 日志记录和崩溃转储收集:提供了配置 JxBrowser 日志记录和收集崩溃转储的方法。
    JxBrowser 提供了强大的功能和灵活性,使其成为开发高性能、功能丰富的桌面应用程序的理想选择。

Java Swing集成JxBrowser

import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;

import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.view.swing.BrowserView;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class HelloWorld {

    public static void main(String[] args) {
        // Creating and running Chromium engine.
        Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
        Browser browser = engine.newBrowser();

        SwingUtilities.invokeLater(() -> {
            // Creating Swing component for rendering web content
            // loaded in the given Browser instance.
            BrowserView view = BrowserView.newInstance(browser);

            // Creating and displaying Swing app frame.
            JFrame frame = new JFrame("Hello World");
            // Close Engine and close the app window.
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    engine.close();
                }
            });
            frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            JTextField addressBar = new JTextField("https://www.google.com");
            addressBar.addActionListener(e ->
                    browser.navigation().loadUrl(addressBar.getText()));
            frame.add(addressBar, BorderLayout.NORTH);
            frame.add(view, BorderLayout.CENTER);
            frame.setSize(800, 500);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            
            browser.navigation().loadUrl(addressBar.getText());
        });
    }
}

JavaFX集成JxBrowser

import static com.teamdev.jxbrowser.engine.RenderingMode.*;
 
import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.view.javafx.BrowserView;
 
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
 
/**
 * 这个示例演示了如何创建和初始化 Engine,创建 Browser
 * 将其嵌入到一个 JavaFX 场景中,并显示现代网络内容,
 * 如 YouTube 视频。
 */
public final class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
Browser browser = engine.newBrowser();
BrowserView view = BrowserView.newInstance(browser);
 
Scene scene = new Scene(new BorderPane(view), 700, 500);
primaryStage.setTitle("JavaFX BrowserView");
primaryStage.setScene(scene);
primaryStage.show();
 
browser.navigation().loadUrl(
    "https://youtu.be/BO8lX3hDU30");
}
}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NewTech精选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值