2016-04-28 4 views
1

Nehmen wir an, ich habe eine App wie die Microsoft Wetter App gebaut.Was ist das empfohlene Muster für Fortschrittsanzeigen beim Warten auf Daten in Windows UWP-Apps?

Beim Start der App muss ich die Vorhersage aus dem Internet herunterladen. Während ich darauf warte, muss ich auch eine Fortschrittsanzeige anzeigen. Welche der folgenden (falls vorhanden) wird empfohlen?

  1. Rendern Sie die Seite vollständig mit Navigationstasten (Hamburgeres Seitenmenü) sowie Seiteninhalt (aber ohne Wert, da sie Daten sind gebunden). Überlagern Sie dann ein modales Steuerelement wie ein Popup mit einer Fortschrittsanzeige und einer Abbrechen-Schaltfläche.

  2. Rendern Sie nur die Anwendungs-Root-Shell mit der Fortschrittsanzeige innerhalb (kein anderer Inhalt oder Navigationssteuerelemente wie Hamburger-Menü sind sichtbar). Sobald die Aufgabe abgeschlossen ist, navigieren Sie zur Startseite mit Inhalt.

  3. Rendern Sie die Startseite mit Inhalts- und Navigationssteuerelementen, aber blenden Sie nur den Inhalt aus (mit Sichtbarkeit = minimiert), und zeigen Sie stattdessen eine Fortschrittsanzeige an. Sobald die Daten heruntergeladen sind, verstecken Sie die Fortschrittsanzeige und zeigen Sie den Inhalt an.

Ich weiß nicht, welche von denen ich verwenden soll. Gibt es einen empfohlenen Weg, dies zu tun?

Oder gibt es einen besseren Weg, an den ich nicht gedacht habe?

+1

Es hängt wirklich von Ihrer Anwendung, aber im Allgemeinen, alles anzuzeigen, die geladen werden können und sofort verwendet. Wenn * alle * die Seiten in Ihrer App Daten benötigen oder keine der Benutzeroberflächen verwendet werden kann, bis die relevanten Daten geladen sind, ist es möglicherweise keine schlechte Idee, zu warten, bis mindestens die Homepage geladen wurde, bevor die Navigationsbenutzeroberfläche angezeigt wird. – BoltClock

+0

@BoltClock Da die meisten meiner Seiten Daten von einer Rest-API benötigen, sollte ich nur die vorläufigen Daten für alle Seiten auf einmal auf einmal laden? Oder sollte ich jede Seite Daten auf Nachfrage laden, wenn der Benutzer zu jedem navigiert? Ich denke, so viel wie möglich am Anfang auf diese Weise zu laden, wenn der Benutzer zu verschiedenen Seiten später navigiert, seine sehr schnelle Erfahrung - sie müssen nicht zwischen den Seiten warten. Was denken Sie? – erotavlas

Antwort

2

Es gibt keine perfekte Antwort für diese Frage, aber ich werde versuchen, die häufigste Lösung zu erklären. Keiner der obigen Punkte ist gut oder schlecht. Es ist besser, sich auf die Benutzererfahrung zu konzentrieren.

Render vollständig Seite mit Navigationssteuerelementen und Anzeige Popup laden ist nicht wirklich schlechte Idee - Benutzer sehen die ganze Seite mit Fortschritt Ring zum Beispiel und hat die Chance, sie abzubrechen. Aber vergessen Sie nicht, dass wenn die Daten nicht geladen sind oder der Benutzer sie abzieht, es leere Inhalte in der App gibt (wenn der Benutzer zum ersten Mal die App startet).

Eine der besten Lösungen für ein Szenario, das Sie geschrieben haben, ist der erweiterte Splash-Screen. Sobald die App gestartet wurde, wird der Startbildschirm angezeigt. Wenn Sie ihn erweitern, können Sie einen Fortschrittsring hinzufügen, um anzuzeigen, dass Daten abgerufen werden. Dies ist eine sehr elegante Weise, um dem Benutzer zu präsentieren.

Bitte siehe unten guidline, wie es geht:

UWP Extended splash screen

+0

Danke, ich habe deinen Vorschlag benutzt und es funktioniert gut. Ein seltsames Problem, für das ich noch keine Zeit zum Debuggen hatte, ist das erweiterte Splash-Rendering als leerer Bildschirm auf Windows 10 Mobile (Gerät und Emulator) - nur die Hintergrundfarbe ist vorhanden, aber kein Bild oder Fortschrittsring. Auf dem Desktop wird es jedoch korrekt angezeigt.Ich frage mich, ob es ein Positionierungsproblem mit dem Bild und dem Fortschrittsring ist. Ich werde wahrscheinlich eine separate Frage stellen, wenn ich es nicht herausfinden kann. – erotavlas

+0

Könnten Sie den XAML-Code dieses Bildschirms in den Kommentar einfügen? Ich kann es in einer Freizeit anschauen. –

+0

Ich habe es herausgefunden, von den Windows-UWP-Samples auf GitHub gibt es ein Beispiel für einen Begrüßungsbildschirm. Ich denke, sie erkennen, ob es ein mobiles Gerät ist und skalieren das Bild entsprechend um einen Skalierungsfaktor. – erotavlas

Verwandte Themen