Startet man eine Tauri 2.0 App unter Linux, wird sporadisch ein WhiteScreen anstatt der Benutzeroberfläche angezeigt. Dieser Beitrag zeigt, wie man das Tauri WhiteScreen-Problem dauerhaft beseitigt.
Woher kommt der Tauri WhiteScreen unter Linux?
Tauri benutzt unter Linux libwebkit2gtk-4.1 um die Benutzeroberfläche zu rendern. Das Webkit wiederum legt einen Cache unter “$HOME/.cache/APP_NAME” an, um den Vorgang zu beschleunigen. Wird die Tauri App beendet, kann es dazu kommen, daß ein leerer Inhalt im Cache landet. Startet man die Tauri App erneut, wird ein WhiteScreen anstatt dem Fensterinhalt angezeigt.

Tauri WhiteScreen unter Linux: Die Lösung
Wenn man die Ursache des WhiteScreen Problems kennt, ist die Lösung einfach: Beim Start der App löschen wir den Cache, dieser wird dann automatisch neu erzeugt und gefüllt. Es entsteht also kein Geschwindigkeits-Nachteil für unsere Tauri App unter Linux.
Dazu ergänzen wir den Rust-Code in der Datei “src-tauri/src/lib.rc” mit dem folgenden “.setup()”-Abschnitt und “use std::fs;” im Header:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ use std::fs; use tauri::Manager; #[tauri::command] fn greet(name: &str) -> String { format!("Hello, {}! You've been greeted from Rust!", name) } #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_opener::init()) .invoke_handler(tauri::generate_handler![greet]) .setup(|app| { // Delete app cache on startup // to fix whitescreen issue // if cfg!(target_os = "linux") { let cache_dir = app.path().cache_dir()?; let package_info = app.package_info(); let app_name = package_info.name.as_str(); let app_cache = cache_dir.join(app_name); if app_cache.exists() { let _ = fs::remove_dir_all(&app_cache); } } Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application"); } |

Der Tauri WhiteScreen Fix im Detail
Der Tauri WhiteScreen Fix macht beim Setup der App folgendes:
- Zuerst wird geprüft, ob die Tauri App unter Linux läuft.
- Falls ja, bauen wir den Cache-Pfad zusammen.
- Der aktuelle AppName wird dabei automatisch ermittelt.
- Falls der Pfad tatsächlich existiert, wird er rekursiv gelöscht.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
.setup(|app| { // Delete app cache on startup // to fix whitescreen issue // if cfg!(target_os = "linux") { let cache_dir = app.path().cache_dir()?; let package_info = app.package_info(); let app_name = package_info.name.as_str(); let app_cache = cache_dir.join(app_name); if app_cache.exists() { let _ = fs::remove_dir_all(&app_cache); } } Ok(()) }) |
Damit hat sich das Thema WhiteScreen bei Tauri Apps unter Linux erledigt :-)



