Lesedauer 3 Minuten

Dieser Beitrag zeigt, wie man aus einer einfachen Tauri 2 App eine Multi Window App machen, indem wir das App Fenster einfach klonen. Hierzu benötigen wir ein paar Anpassungen im Tauri 2 Frontend und im Rust Backend.

Tauri App klonen: Die Vorteile mehrerer Fenster

Die Vorteile liegen auf der Hand: Du kannst in Deiner Tauri App mehrere unabhängige Fenster öffnen. Deine Nutzer können parallel in verschiedenen Bereichen arbeiten, Einstellungen in einem separaten Fenster anpassen oder Daten vergleichen – jedes Fenster lädt unabhängig, alle Fenster teilen sich die gleiche Datenquellen.

Produktivität steigern:
Multi-Window-Support ermöglicht echtes Multitasking. Deine Nutzer arrangieren die Fenster nach Belieben auf ihrem Desktop.

Native Desktop-Feel:
Moderne Desktop-Apps haben mehrere Fenster. Damit konkurrierst du auf Augenhöhe mit etablierten Lösungen.

Flexibilität:
Jedes Fenster kann unterschiedliche Inhalte laden – perfekt für spezialisierte Tools oder Detailansichten.

Minimaler Resourcen-Verbrauch:
Im Gegensatz zu Electron ist Tauri leichtgewichtig. Mehrere Fenster bleiben performant.

User Experience :
Fenster-Klonen macht deine Tauri App professioneller und nutzerfreundlicher. Ein kleines Feature mit großer Wirkung.

Tauri2: Multi Window App, Fenster klonen

Tauri 2: Anpassungen im Backend

In src-tauri/src/lib.rs fügen wir eine entsprechende Funktion als Tauri-Command hinzu:

Und registrieren diese weiter unten als invoke_handler:

In diesem Beispiel gibt es schon ein Tauri-Command namens ping. Sollte das bei Dir nicht existieren, dann entferne ping aus dem InvokeHandler Array.

Als Nächstes setzen wir die notwendigen Capabilities in src-tauri/capabilities/default.json:

In unserem Beispiel sind das alle Zeilen, die mit core:webview: und core:window: beginnen.

Die Datei src-tauri/Cargo.toml ergänzen wir um das UUID-Paket und aktivieren das v4 Featureset:

Die Rust Funktion baut über den WebviewWindowBuilder eine neue Fenster-Instanz und gibt dieser eine neue UUID V4 als ID mit. Damit auch das Klonen eines bereits geklonten Fensters klappt, müssen die entsprechenden Capabilities freigeschaltet werden. Die Rust-Funktion selbst ist ein invokable Tauri-Command, d.h. es kann über das Tauri Frontend per JavaScript aufgerufen werden.

Tauri 2 Fenster klonen

Tauri 2: Integration im Frontend

Im Tauri Frontend benötigen wir dann noch eine JavaScript-Funktion zum Klonen des aktuellen Fensters, die z.B. über einen Button-ClickEvent getriggert wird:

Die aktuelle URL wird ebenfalls gekloned. Das neue Fenster zeigt dann die aktuelle Menü-Auswahl der Tauri App zum Zeitpunkt des Klonens.

Eine funktionsfähige Demo findest Du im GitHub Repo meines Tauri2-Quasar Projekts.

 

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!