Lesedauer 2 Minuten

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:

mit dieser

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:

Radzen Studio: c.setEventDispatcher is not a function

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

 

Hat Dir der Beitrag gefallen?

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