Versucht man eine Blazor MAUI App au einem älteren Betriebsystem wie z.B. macOS 13, Android 10 oder iOS 15 zu starten, crashed die App mit einem komplett leeren, weißen Bildschirm bzw. Fenster. Dieser Beitrag zeigt wie man das Whitescreen-Problem beseitigt.
Wie kommt es zum Whitescreen bei Blazor MAU Apps?
Eigentlich sollten alle o.g. Betriebsystem-Versionen funktionieren, denn sie gehören alle zu den offiziellen System-Requirements von Microsoft für Blazor MAUI Apps.
Was ist passiert?
Blazor MAUI Apps benutzen beim Start ein Script namens “blazor.webview.js”. Irgend wann haben sich die Entwickler von Blazor wohl dazu entschieden, das Start-Script auf den ECMA 2022-Standard für JavaScript anzupassen. Leider hat das den Seiteneffekt, daß ältere Webviews das nicht unterstützen. Das Resultat: Die App crashed bei der Initialisierung und die WebView der MAUI-App bleibt leer.
Es kommt zu dem besagten Whitescreen of Death …
Blazor MAUI Apps: Leerer Bildschirm beim Start beseitigen
Dank einem findigen GitHub User ist die Lösung sehr einfach. Man ersetzt das Startscript durch eine auf ECMA 2019 konvertierte Version.
Dazu gehen wir wie folgt vor:
- Im Ordner wwwroot legen wir folgende Ordner an: scripts/patches
- Dort legen wir eine leere Datei an: scripts/patches/blazor.webview.es2019.js
- Den Inhalt der Datei kopieren wir aus dem folgenden GitHub Repo: Eilon/MauiBlazorHybridES2019
Als Nächstes öffnen wwwroot/index.html in einem Editor und ersetzen diese Zeile:
1 |
script src="_framework/blazor.webview.js" autostart="false"></script> |
mit dieser
1 |
<script src="scripts/patches/blazor.webview.es2019.js" autostart="false"></script> |
Danach bauen wir das Projekt neu und das Blazor MAUI Whitescreen-Problem gehört der Vergangenheit an.
DANKE Eilon :-)
Radzen Blazor Studio & Whitescreen-Patch: c.setEventDispatcher is not a function
Leider kommt diese Lösung mit einer kleinen Einschränkung für Radzen Blazor Studio User. Öffnet man in Radzen Blazor Studio eine Page, erscheint der folgende Fehler:
Der Dialog muss dann ggf. mehrmals bestätigt werden. Danach kann man weiterarbeiten wie gewohnt. Leider ein Bug, mit dem sich jedoch leben lässt, denn die Vorteile überwiegen.
Blazor MAUI Apps: System Requirements mit und ohne Whitescreen-Patch
Zusammengefasst ergibt sich in Sachen System-Kompatibilität folgendes Gesamtbild, mit und ohne Whitescreen-Patch:
Ohne den Whitescreen-Patch sind sind Blazor MAUI Apps auf diese Betriebsysteme als Mindestanforderung beschränkt:
Betriebsystem | Lauffähig ab |
---|---|
Android | API 30 (Android 11) |
iOS | iOS 16 |
macOS | macOS 14 (Ventura) |
Windows | Windows 10 Build 1809 |
Mit dem Whitescreen-Patch erschliesst sich ein deutlich größerer Markt:
Betriebsystem | Lauffähig ab |
---|---|
Android | API 28 (Android 9) Best Practice: Ab API 30 (Android 11) Apps unter API 28 und 29 benötigen spezielle CSS-Anpassungen. Diese entfallen ab API 30. |
iOS | iOS 14 Best Practice: Ab iOS 15.4. Zum Compilieren wird Apple XCode benötigt. Das aktuelle XCode unterstützt Apps ab iOS 15.4. Ältere iOS-Versionen benötigen eine ältere XCode-Version. |
macOS | macOS 12 (Monterey) |
Windows | Windows 10 Build 1809 |
Mehr Beiträge zu Blazor & Blazor MAUI lesen