fix(desktop): Download-Knoepfe in der App reichen an den System-Browser weiter
Befund des Nutzers (22.09.2026): "Herunterladen" unter Einstellungen -> Desktop-App tut in der App nichts, unter Windows wie Linux. Die Webansicht hatte keinen Download-Handler; webkit2gtk verwirft Downloads dann still, WebView2 zeigte ebenfalls nichts. Das Hauptfenster entsteht jetzt im Code (app.windows in tauri.conf.json leer), weil nur der Builder `on_download` annimmt. Der Handler bricht den Download in der App ab und oeffnet die Adresse ueber den Opener im System-Browser -- mit Fortschritt, Speicherort und Passwortfenster fuer einen vorgeschalteten Proxy. Masse, Zentrierung, Titel wie bisher; die Capability "main" gilt unveraendert. cargo fmt/clippy/test/check gruen (44 Tests). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@ Diese Liste beschreibt in einfachen Worten, was sich von Version zu Version an T
|
|||||||
|
|
||||||
### Behoben
|
### Behoben
|
||||||
|
|
||||||
|
- Desktop-App: die Knöpfe „Herunterladen“ unter Einstellungen → Desktop-App waren in der App ohne Funktion (Windows und Linux) – der Download öffnet sich jetzt im Browser des Systems
|
||||||
- Desktop-App: der Update-Eintrag im Menü des Infobereich-Symbols bleibt nicht mehr stumm ausgegraut – schlägt die Update-Prüfung fehl, steht der Grund im Eintrag (z. B. „HTTP 401“, wenn ein Passwortschutz am Proxy die Anfrage abweist) und ein Klick prüft erneut; die App prüft außerdem alle vier Stunden, nicht mehr nur beim Start
|
- Desktop-App: der Update-Eintrag im Menü des Infobereich-Symbols bleibt nicht mehr stumm ausgegraut – schlägt die Update-Prüfung fehl, steht der Grund im Eintrag (z. B. „HTTP 401“, wenn ein Passwortschutz am Proxy die Anfrage abweist) und ein Klick prüft erneut; die App prüft außerdem alle vier Stunden, nicht mehr nur beim Start
|
||||||
- Favoriten-Widget: kein Symbol bei Seiten mit Zertifikatsfehler oder internen Adressen – das Symbol wird jetzt trotz Zertifikatsfehler geholt, bei internen Adressen versucht es der Browser direkt
|
- Favoriten-Widget: kein Symbol bei Seiten mit Zertifikatsfehler oder internen Adressen – das Symbol wird jetzt trotz Zertifikatsfehler geholt, bei internen Adressen versucht es der Browser direkt
|
||||||
|
|
||||||
|
|||||||
@@ -713,6 +713,39 @@ pub fn run() {
|
|||||||
get_client_info
|
get_client_info
|
||||||
])
|
])
|
||||||
.setup(|app| {
|
.setup(|app| {
|
||||||
|
// Hauptfenster im Code statt in tauri.conf.json (`app.windows` ist
|
||||||
|
// leer), weil nur der Builder einen Download-Handler annimmt. Ohne
|
||||||
|
// Handler verpufft ein Klick auf "Herunterladen" (Einstellungen ->
|
||||||
|
// Desktop-App) in der Webansicht: webkit2gtk verwirft den Download
|
||||||
|
// still, WebView2 zeigte ebenfalls nichts (Nutzer, 22.09.2026,
|
||||||
|
// Windows und Linux). Der Handler bricht den Download in der App ab
|
||||||
|
// und reicht die Adresse an den System-Browser weiter -- dort gibt
|
||||||
|
// es Fortschritt, Speicherort und ein Passwortfenster fuer einen
|
||||||
|
// vorgeschalteten Proxy. Masse/Zentrierung wie bisher in der
|
||||||
|
// Konfiguration; Fensterzustand stellt tauri_plugin_window_state
|
||||||
|
// weiterhin her.
|
||||||
|
tauri::WebviewWindowBuilder::new(
|
||||||
|
app,
|
||||||
|
"main",
|
||||||
|
tauri::WebviewUrl::App("setup.html".into()),
|
||||||
|
)
|
||||||
|
.title("Tessera")
|
||||||
|
.inner_size(1280.0, 800.0)
|
||||||
|
.center()
|
||||||
|
.decorations(true)
|
||||||
|
.resizable(true)
|
||||||
|
.on_download(|webview, event| {
|
||||||
|
if let tauri::webview::DownloadEvent::Requested { url, .. } = event {
|
||||||
|
let _ = webview
|
||||||
|
.app_handle()
|
||||||
|
.opener()
|
||||||
|
.open_url(url.to_string(), None::<&str>);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
true
|
||||||
|
})
|
||||||
|
.build()?;
|
||||||
|
|
||||||
let server_url = stored_server_url(app.handle());
|
let server_url = stored_server_url(app.handle());
|
||||||
|
|
||||||
if let Some(url) = &server_url {
|
if let Some(url) = &server_url {
|
||||||
|
|||||||
@@ -9,18 +9,7 @@
|
|||||||
},
|
},
|
||||||
"app": {
|
"app": {
|
||||||
"withGlobalTauri": true,
|
"withGlobalTauri": true,
|
||||||
"windows": [
|
"windows": [],
|
||||||
{
|
|
||||||
"label": "main",
|
|
||||||
"title": "Tessera",
|
|
||||||
"url": "setup.html",
|
|
||||||
"width": 1280,
|
|
||||||
"height": 800,
|
|
||||||
"center": true,
|
|
||||||
"decorations": true,
|
|
||||||
"resizable": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"security": {
|
"security": {
|
||||||
"csp": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'"
|
"csp": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user