JWebView von levlabs · In Entwicklung

Chromium für Java.

Betten Sie Chromium mit einer umfassenden Browser-API in Ihre Java-Anwendungen ein. Steuern Sie Navigation, JavaScript, DOM, Netzwerkanfragen, Profile, Downloads und mehr.

Demo vereinbaren Frühen Zugang sichern

Eine Produktvorstellung ist ein Gespräch über das Produktkonzept und die geplante Architektur. Es gibt noch keine Demo.

Die API auf einen Blick.

Geschrieben gegen den API-Vertrag. Namen und Details können sich ändern.

Vorgeschlagene API · Änderungen vorbehalten
EmbeddedPage.java

Idiomatisches Java · Entwurf der Schreibweise, nicht Teil der dokumentierten API

WebViewConfiguration configuration =
    WebViewConfiguration.hardwareAccelerated()
        .licenseKey(System.getenv("JWEBVIEW_LICENSE"));

JWebView page = new JWebView(configuration);
page.navigation().loadUrl("https://example.com");

JFrame frame = new JFrame("My application");
frame.add(page);
frame.setSize(1100, 720);
frame.setVisible(true);

Snake Case · wie im aktuellen API-Entwurf

WebView_configuration configuration =
    WebView_configuration.hardware_accelerated()
        .license_key(System.getenv("JWEBVIEW_LICENSE"));

JWebView page = new JWebView(configuration);
page.navigation().load_url("https://example.com");

JFrame frame = new JFrame("My application");
frame.add(page);
frame.setSize(1100, 720);
frame.setVisible(true);
BrowserWindow.java

Idiomatisches Java · Entwurf der Schreibweise, nicht Teil der dokumentierten API

// Tabs, address field and toolbar, one JWebView per tab.
WebViewConfiguration configuration =
    WebViewConfiguration.hardwareAccelerated()
        .licenseKey(System.getenv("JWEBVIEW_LICENSE"));

BrowserView view = new BrowserView(configuration);
view.displayMode(DisplayMode.MINIMAL_UI);
view.loadUrl("https://example.com");

Snake Case · wie im aktuellen API-Entwurf

// Tabs, address field and toolbar, one JWebView per tab.
WebView_configuration configuration =
    WebView_configuration.hardware_accelerated()
        .license_key(System.getenv("JWEBVIEW_LICENSE"));

Browser_view view = new Browser_view(configuration);
view.display_mode(Display_mode.MINIMAL_UI);
view.load_url("https://example.com");
Greeter.java

Idiomatisches Java · Entwurf der Schreibweise, nicht Teil der dokumentierten API

public class Greeter
{
  @JsAccessible
  public String greet (String name)
  {
    return "Hello, " + name;
  }
}

// The page can now call app.greet("Ada").
page.mainFrame()
    .executeJavaScript("window")
    .putProperty("app", new Greeter());

Snake Case · wie im aktuellen API-Entwurf

public class Greeter
{
  @Js_accessible
  public String greet (String name)
  {
    return "Hello, " + name;
  }
}

// The page can now call app.greet("Ada").
page.main_frame()
    .execute_java_script("window")
    .put_property("app", new Greeter());
API-Stil und Benennung Alle Namen sind vorläufig.

Eine umfassende Browser-API.

Geplante Fähigkeiten. Nichts davon ist bereits verfügbar.

Browser

  • Navigation und VerlaufURLs und HTML laden, im Verlauf blättern, neu laden und stoppen.
  • Frames und DOMDas geladene Dokument lesen und ändern, auch iframes.
  • JavaScript ausführenJavaScript aus Java aufrufen und die Seite zurückrufen lassen.
  • Profile und SitzungenGetrennte Cookie-, Cache- und Passwortbereiche, auch private Sitzungen.

Netzwerk

  • Anfragen abfangenAnfragen prüfen und ändern, Header setzen.
  • Cookies und AuthentifizierungCookies verwalten und HTTP- und Proxy-Anmeldung beantworten.
  • Proxy-KonfigurationDatenverkehr über einen Proxy Ihrer Wahl leiten.
  • Eigene SchemataEigene URL-Schemata registrieren und aus Java beantworten.

Desktop

  • Downloads und DialogeZielort für Dateien wählen, Dialoge behandeln oder ersetzen.
  • Drucken und PDFEine Seite drucken oder als PDF-Datei schreiben.
  • DevToolsDie Entwicklerwerkzeuge oder einen Remote-Inspektor öffnen.
  • Hardware- und Off-Screen-RenderingMit Hardwarebeschleunigung oder in einen Puffer zeichnen.

Wie Sie JWebView einsetzen können.

Wo ein eingebetteter Browser in einer Java-Desktopanwendung typischerweise seinen Platz hat.

  • Hybride Desktop-Oberflächen

    Teile der Oberfläche mit Webtechnik bauen und mit Ihrem Java-Code verbinden.

  • Unternehmens-Desktopsoftware

    Interne Portale und Webanwendungen im Client zeigen statt in einem getrennten Browser.

  • Finanz- und Versicherungsanwendungen

    Webbasierte Formulare, Dokumente und Berichte in einen bestehenden Desktop-Ablauf holen.

  • Industriesoftware

    Eine webbasierte Bedien- oder Konfigurationsansicht neben die Werkzeuge stellen, die sie brauchen.

  • Entwicklerwerkzeuge

    Dokumentation, Vorschauen und webbasierte Editoren in ein Werkzeug oder eine IDE einbetten.

So greift es ineinander.

Ihr Java-Prozess

Eigener Browserprozess

Java-Anwendung
JWebView-API
Versionierte IPC
CEF-Host
Chromium
Ablauf von der Java-Anwendung über die JWebView-API und eine versionierte IPC-Grenze zum CEF-Host und zu Chromium.
  • Chromium läuft im eigenen Prozess; die JVM lädt keine CEF-Bibliothek.
  • Java-API und Host sprechen über ein versioniertes IPC-Protokoll (Thrift).
  • Keine Abhängigkeit von der JetBrains Runtime.

Eine Prozessgrenze trennt Zuständigkeiten. Sie garantiert nicht für sich allein, dass ein Browserabsturz die Anwendung nicht beeinflusst oder dass sich jeder Fehler sauber beheben lässt.

JWebView ist in Entwicklung.

Wir bauen JWebView, damit sich Chromium-Integration in Java-Desktopanwendungen leichter einführen und pflegen lässt, und sprechen mit Entwicklern und Softwarehäusern, um das erste Release zu priorisieren.

  • Die Architektur steht: Chromium im eigenen Prozess, ein versioniertes Protokoll zur Java-Schicht.
  • Die Java-API liegt als schriftlicher Vertrag im Entwurf vor.
  • Es gibt keinen öffentlichen Build und keinen Veröffentlichungstermin.

Zielplattformen: Windows x64 / ARM64, macOS Intel / Apple Silicon, Linux x64 / ARM64, mit Java 17 oder neuer. Noch keine ist als geprüft erklärt.

Sprechen wir über Ihre Java-Anwendung.

Sie prüfen eingebettetes Chromium für eine bestehende oder geplante Java-Desktopanwendung? Wir möchten Ihre Anforderungen verstehen.

Demo vereinbaren

In Entwicklung · Kein öffentlicher Veröffentlichungstermin angekündigt

Einfache Lizenzierung für Java-Entwickler.

Lizenzoptionen für Open-Source-Projekte, unabhängige Entwickler und Softwareteams.

Open-Source-Projekte

Kostenlos

Für Open-Source-Anwendungen. Proprietäre Anwendungen benötigen eine Indie- oder Business-Lizenz.

  • Vollständige Browser-API
  • Weitergabe des proprietären JWebView-Binär-JARs
  • Keine zeitliche Begrenzung
  • JWebView selbst bleibt proprietär; der Quellcode ist nicht enthalten
Ihr Projekt vorstellen

Indie

Wird bekannt gegeben

Für unabhängige Entwickler.

  • Kommerzielle Anwendungsentwicklung
  • Vollständige Browser-API
  • Kommerzielle Weitergabe unter Lizenz
  • Optionen für Wartung und Updates
Lizenzierung besprechen

Business

Auf Anfrage

Für Unternehmen, die Java-Anwendungen entwickeln und vertreiben.

  • Vollständige Browser-API
  • Kommerzielle Weitergabe unter Lizenz
  • Team- und Produktlizenzen
  • Optionen für Wartung und Support
Demo vereinbaren

JWebView ist in Entwicklung. Lizenzbedingungen, Preise und Verfügbarkeit werden kurz vor der Veröffentlichung bekannt gegeben.

Auf die Warteliste für den frühen Zugang.

Tragen Sie sich in die Warteliste ein. Eine E-Mail-Adresse, sonst nichts, und eine Nachricht von uns, sobald es etwas zum Ausprobieren gibt.

Wird auf unserem eigenen Server gespeichert und nur für diese Ankündigung verwendet.