Hvordan bruges dynamisk hjemmeside i Flutter?

Startside-skærmbillede

I dag vil jeg give nogle eksempler på, hvordan du indstiller din startside på en dynamisk måde i Flutter-appen. Du vidste, Flutter har en MaterialApp-widget-klasse til at starte din app. Denne klasse har en egenskab, der hedder "hjem", og du kan bruge denne egenskab til at oprette en ny klasse. Men, hvis du vil ændre dit hjem af nogle grunde til at starte din app, hvordan kan du gøre det?

I det grundlæggende kan du gøre dette ved at bruge en betingelse ved opstart, men hvis du vil kontrollere, at den givne bruger er godkendt, og du vil beslutte, hvilken side der skal være hjemme for denne bruger, skal du bruge asynchrony. Hvorfor? Fordi, hvilken metode du bruger til autorisationssystem, skal det have en asynkronfunktion til første kontrol.

Jeg giver et eksempel på godkendelse i dette indlæg.

Først og fremmest, hvis du er ny i Flutter, kan du se mit gamle indlæg for at starte og oprette et nyt Flutter-projekt. Jeg får ikke vist at oprette et nyt Flutter-projekt i dette indlæg. Tænk på en grundlæggende app, der har en godkendelse. Så hvilke sider skal der være i denne app? Svaret er login-side og startside. Hvis brugeren er logget ind, skal du vise til hjemmesiden for denne bruger. Ellers skal du vise login-side. Så se denne liste efter klasser, der i app.

  • HomePage
  • LoginPage
  • AuthService

Vi har 3 klasser. De 2 klasser er til sider, og den anden klasse er til betjening af autorisationstjeneste. Jeg vil falske asynkronfunktionen i dette indlæg. Fordi jeg ønsker at fokusere på at ændre hjemsejendom på at køre din app i dette indlæg. Tænk på en grundlæggende autorisationsfunktioner, så hvad er disse? Login og logout (Registrering kan være valgfri, hvis du bruger Firebase). Så godkendelsesklassen har to funktioner, og disse funktioner skal være asynkroniske, fordi hvis du vil logge ind eller logge ud, skal du sende en anmodning, eller du skal vente på noget lignende. Lad os se aktivitetsdiagrammet for dette scenarie.

Aktivitetsdiagram

Det er så enkelt og grundlæggende til tutorial. Tid til at starte!

Lad os begynde at skrive fra vores autoriserede serviceklasse. Jeg sagde, at vi har to metoder, der er login og logout i denne klasse, og jeg vil bruge randomiseret svar til login-metoden, fordi du ved, denne funktion skal være sand eller falsk i den virkelige verden. Jeg bruger et ugyldigt svar til logout-metoden.

Opret derefter mine sider. Jeg sagde, jeg har to sider i dette eksempel. På login-siden kan brugeren logge på app, men jeg vil bruge tilfældigt resultat til login, fordi du ved, at enhver bruger ikke kan logge på appen første gang. Jeg brugte dart: matematikbibliotek i authService til dette, og jeg vil gerne vise svarstype på login-siden. På startsiden kan brugeren logge ud og gå tilbage til login-siden.

Ja, vi har side- og serviceklasser til app. Så det er tid til at køre app. Så det vigtigste mål vil være i main.dart-filen, fordi vi er nødt til at vente autor login-metoden i denne, så vi er nødt til at beslutte app-hjem widget med respose af login metoden resultat. Jeg bruger async og afventer nøgleord i denne fil. Disse nøgleord er funktionen af ​​dart sprog.

Det er alt.

Github: https://github.com/anilcancakir/dynamic-home-example-flutter