Razvijanje izvanmrežnih aplikacija od gotovih gradivnih elemenata

Korisnici mobilnih uređaja često moraju biti produktivni čak i kad imaju ograničenu ili nikakvu povezanost. Kada izrađujete aplikaciju od gotovih gradivnih elemenata, možete izvoditi ove zadatke:

  • Otvorite Power Apps Mobile i pokrenite aplikacije kada uređaj nije povezan s mrežom.
  • Odredite je li aplikacija izvanmrežna, na mreži ili u vezi s ograničenim prometom pomoću objekta signala veze .
  • Sinkronizirajte podatke između uređaja i poslužitelja.

Ako se vaša aplikacija poveže Dataverse, ugrađena je izvanmrežna podrška. Power Apps Omogućit će vam preuzimanje podataka na vaš uređaj i prijenos promjena natrag Dataverse. Ako vaša aplikacija ne koristi Dataverse, možete koristiti zbirke i iskoristiti funkcije LoadData i SaveData za osnovnu pohranu kada ste izvan mreže.

Napomena

  • Izvanmrežna mogućnost za aplikacije radnog područja dostupna je tijekom pokretanja aplikacija pomoću izvornih Power Apps mobilnih playera na iOS Android i Windows.
  • Aplikacije od gotovih gradivnih elemenata koje se izvode u web-preglednicima ne mogu se pokretati izvan mreže, čak i kada koriste web-preglednik na mobilnom uređaju.
  • Aplikacije radnog područja u aplikaciji Teams ograničene su na 1 MB podataka putem funkcija LoadData i SaveData – korisno za mali broj tekstnih nizova, brojeva i datuma. Upotreba slika ili drugih medijskih sadržaja nije prikladna za to ograničenje. Dodatne informacije: Referenca funkcija LoadData i SaveData

Omogućite izvanmrežnu podršku u aplikaciji radnog područja temeljenoj na A Dataverse

Za Microsoft Dataverse aplikacije radnog područja temeljene na aplikacijama radnog područja morate koristiti izvanmrežnu mogućnost ugrađenu s izvanmrežnim iskustvom. Dodatne informacije potražite u članku Postavljanje izvanmrežnog mobilnog uređaja za aplikacije radnog područja i Izvanmrežni rad s aplikacijama radnog područja. Pritiskom na prekidač vaša aplikacija može raditi s Dataverse podacima gdje god se nalazili, s mrežnom vezom ili bez nje. Samo izradite svoju aplikaciju sa standardnim Power Fx formulama, a izvanmrežna značajka rješava svu složenost umjesto vas.

Koristite LoadData i SaveData za sve ostale poveznike

Ovaj odjeljak uključuje primjer korištenja podataka s Twittera. Još jednostavniji primjer koji ne zahtijeva vezu uključen je u referencu funkcija LoadData i SaveData.

Pogledajte ovaj videozapis da biste saznali kako stvoriti izvanmrežne aplikacije radnog područja koje ne koriste Dataverse podatke:

Ograničenja

LoadData i SaveData kombiniraju se kako bi stvorili jednostavan mehanizam za pohranu malih količina podataka na lokalnom uređaju. Uporabom ovih funkcija možete svojoj aplikaciji dodati jednostavne izvanmrežne mogućnosti.

Ove su funkcije ograničene količinom dostupne memorije aplikacije jer djeluju na zbirci unutarnje memorije. Dostupna memorija može se razlikovati ovisno o uređaju, operacijskom sustavu, memoriji koju upotrebljava platforma Power Apps Mobile i složenosti aplikacije u pogledu zaslona i kontrola. Ako pohranjujete više od nekoliko megabajta podataka, testirajte svoju aplikaciju s pomoću očekivanih scenarija na uređajima na kojima očekujete da bi se mogla pokrenuti. Obično ćete imati 30 Mb – 70 Mb dostupne memorije.

Funkcije također ne rješavaju automatski sukobe spajanja kada uređaj dođe na mrežu. Pri izradi izraza, o autoru ovisi konfiguracija podataka koji se spremaju i način postupanja pri ponovnom povezivanju.

Nakon korištenja LoadData za popunjavanje zbirke, ta se zbirka ne može koristiti za ažuriranje Dataverse podataka koji uključuju polje za pretraživanje. To će rezultirati time da se polje za pretraživanje ne ažurira.

Za ažuriranja o izvanmrežnim mogućnostima vratite se na ovu temu i pretplatite se na blog Power Apps .

Pregled

Kada dizajnirate izvanmrežne scenarije, prvo biste trebali razmotriti kako vaše aplikacije rade s podacima. Aplikacije prvenstveno Power Apps pristupaju podacima putem skupa konektora koje platforma pruža, kao što su SharePoint, Office 365, i Microsoft Dataverse. Možete izraditi i prilagođene poveznike koji aplikacijama omogućuju pristup svakoj usluzi koja pruža krajnju točku RESTful. To može biti Web API ili usluga poput Azure Functions. Svi ti priključci koriste HTTPS putem interneta, što znači da vaši korisnici moraju biti na mreži kako bi mogli pristupiti podacima i svim drugim mogućnostima koje usluga nudi.

Power Apps s priključcima.

Rukovanje izvanmrežnim podacima

Na platformi Power Apps možete filtrirati, pretraživati, sortirati, objedinjavati i manipulirati podacima na dosljedan način bez obzira na izvor podataka. Raspon izvora obuhvaća sve od zbirki interne memorije aplikacije i Microsoftovih popisa do SQL baza podataka i platforme Dataverse. Zbog ove dosljednosti aplikaciju možete jednostavno preusmjeriti na uporabu drugog izvor podataka. Za izvanmrežne scenarije još je bitnije da možete upotrebljavati lokalne zbirke za upravljanje podacima s gotovo nikakvim promjenama logike aplikacije. Zapravo, lokalne su zbirke glavni mehanizam za rukovanje izvanmrežnim podacima.

Izrada izvanmrežne aplikacije

Kako bi se usredotočila na izvanmrežne aspekte razvoja aplikacije, ova tema ilustrira jednostavan scenarij usmjeren na platformu Twitter. Izradit ćete aplikaciju koja vam omogućuje čitanje objava na platformi Twitter i slanje tweetova dok ste izvan mreže. Kada se aplikacija poveže na mrežu, ona objavljuje tweetove i ponovno učitava lokalne podatke.

Aplikacija na visokoj razini obavlja sljedeće zadatke:

  • Kada korisnik otvori aplikaciju:

    • Ako je uređaj na mreži, aplikacija dohvaća podatke putem poveznika platforme Twitter i popunjava zbirku tim podacima.
    • Ako je uređaj izvan mreže, aplikacija učitava podatke iz lokalne datoteke predmemorije pomoću funkcije LoadData .
    • Korisnik može poslati tweetove. Ako je aplikacija na mreži, tweetove objavljuje izravno na platformi Twitter i osvježava lokalnu predmemoriju.
  • Svakih pet minuta dok je aplikacija na mreži:

    • Aplikacija objavljuje sve tweetove iz lokalne predmemorije.
    • Aplikacija osvježava lokalnu predmemoriju i sprema je pomoću funkcije SaveData .

1. korak: Dodajte platformu Twitter praznoj aplikaciji za telefon

  1. Stvorite praznu aplikaciju radnog područja s izgledom telefona .
  2. Na kartici Prikaz odaberite Izvori podataka.
  3. U oknu Podaci odaberite Dodaj izvor podataka.
  4. Odaberite Stvori novu vezu>na Twitteru>.
  5. Unesite svoje vjerodajnice, stvorite vezu, a zatim zatvorite okno Podaci .

2. korak: Prikupljanje postojećih tweetova

  1. U oknu Prikaz stabla odaberite Aplikacija, a zatim postavite svojstvo OnStart na ovu formulu:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    

    Formula za učitavanje tweetova.

  2. U oknu Prikaz stabla odaberite izbornik s tri točke za objekt aplikacije , a zatim odaberite Pokreni na početku da biste pokrenuli tu formulu.

    Pokrenite formulu za učitavanje tweetova.

    Napomena

    Funkcije LoadData i SaveData mogu prikazati pogrešku jer Power Apps Studio ih preglednici ne podržavaju. Međutim, one će se normalno izvoditi nakon što tu aplikaciju implementirate na uređaj.

Ova formula provjerava je li uređaj na mreži:

  • Ako je uređaj na mreži, formula učitava do 10 tweetova s pojmom za pretraživanje "PowerApps" u zbirku LocalTweets .
  • Ako je uređaj izvan mreže, formula učitava lokalnu predmemoriju iz datoteke koja se naziva „LocalTweets„, ako je dostupna.
  1. Na kartici Umetanje odaberite Galerija>Prazna fleksibilna visina.

  2. Postavite svojstvo Stavke kontrole Galerija na LocalTweets.

  3. U predlošku galerije dodajte tri kontrole Oznaka i postavite svojstvo Tekst svake oznake na jednu od ovih vrijednosti:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Neka tekst na posljednjoj oznaci bude podebljan tako da galerija nalikuje ovom primjeru.

    Galerija koja prikazuje primjere tweetova.

4. korak: Prikaz statusa veze

  1. Ispod galerije umetnite oznaku, a zatim postavite njezino svojstvo Color na Red.

  2. Postavite svojstvo Tekst najnovije oznake na ovu formulu:

    If( Connection.Connected, "Connected", "Offline" )

Ova formula određuje je li uređaj na mreži. Ako jest, oznaka prikazuje Povezano, u suprotnom, prikazuje Offline.

5. korak: Dodavanje okvira za sastavljanje tweetova

  1. Ispod oznake statusa veze umetnite kontrolu Unos teksta i preimenujte je u NewTweetTextInput .

  2. Postavite svojstvo okvira za unos teksta Zadano na "".

    Galerija preko informacija o statusu i okvira za unos teksta.

6. korak: Dodavanje gumba za objavu tweeta

  1. Ispod okvira za unos teksta dodajte kontrolu Button i postavite njezino svojstvo Text na ovu vrijednost:

    "Tweet"

  2. Postavite svojstvo gumba OnSelect na ovu formulu:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. U svojstvo OnStart za aplikaciju dodajte redak na kraju formule:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 100} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    LoadData( LocalTweetsToPost, "LocalTweetsToPost", true );  // added line
    

    Pokrenite formulu za učitavanje tweetova s nekomentiranom linijom.

Ova formula određuje je li uređaj na mreži:

  • Ako je uređaj na mreži, tweet se odmah objavljuje.
  • Ako je uređaj izvan mreže, snima tweet u zbirci LocalTweetsToPost i sprema ga na uređaj.

Tada formula vraća zadane postavke teksta u okvir za unos teksta.

7. korak: Provjera novih tweetova

  1. Na desnoj strani gumba dodajte kontrolu Mjerač vremena.

    Završne aplikacije.

  2. Postavite svojstvo Trajanje mjerača vremena na 300000.

  3. Postavite svojstva automatskog pokretanja i ponavljanja mjerača vremena na true .

  4. Postavite OnTimerEnd mjerača vremena na ovu formulu:

    If( Connection.Connected,
        ForAll( LocalTweetsToPost, Twitter.Tweet( "", {tweetText: tweetText} ) );
        Clear( LocalTweetsToPost );
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
        SaveData( LocalTweets, "LocalTweets" );
    )
    

Ova formula određuje je li uređaj na mreži. Ako jest, aplikacija tweeta sve stavke u zbirci LocalTweetsToPost , a zatim briše zbirku.

Ispitivanje aplikacije

  1. Otvorite aplikaciju pomoću Power Apps mobilnog uređaja na mobilnom uređaju koji je povezan s internetom.

    Postojeći tweetovi prikazuju se u galeriji, a status prikazuje Povezano.

  2. Prekinite vezu uređaja s internetom omogućivanjem načina rada u zrakoplovu i onemogućivanjem Wi-Fi tehnologije.

    Oznaka statusa pokazuje da je aplikacija izvan mreže.

  3. Dok je uređaj izvan mreže, napišite tweet koji uključuje Power Apps, a zatim odaberite gumb Tweet .

    Tweet je lokalno pohranjen u zbirci LocalTweetsToPost .

  4. Prekinite vezu uređaja s internetom omogućivanjem načina rada u zrakoplovu i onemogućivanjem Wi-Fi tehnologije.

    U roku od pet minuta aplikacija objavljuje tweet koji se prikazuje u galeriji.

Nadamo se da vam ovaj članak daje predodžbu o mogućnostima koje platforma Power Apps ima za izradu izvanmrežnih aplikacija. Kao i uvijek, pošaljite povratne informacije na našem forumu i podijelite svoje primjere izvanmrežnih aplikacija na blogu Power Apps zajednice.