Razvoj aplikacija sa podlogom koje omogućavaju rad van mreže
Korisnici mobilnih uređaja često moraju biti produktivni čak i kada imaju ograničenu povezanost ili nisu povezani. Kada pravite aplikaciju sa podlogom, možete da obavljate ove zadatke:
- Otvorite Power Apps Mobile i pokrenite aplikacije kada ste van mreže.
- Utvrdite kada je aplikacija van mreže, na mreži ili u ograničenoj vezi pomoću objekta signala Veza.
- Upotrebite kolekcije i iskoristite funkcije LoadData i SaveData za osnovno skladištenje podataka kada ste van mreže.
Napomena
Mogućnost rada van mreže za aplikacije sa podlogom dostupna je samo tokom pokretanja aplikacija koje koriste Power Apps Mobile. Aplikacije sa podlogom koje se pokreću u veb-pregledačima ne mogu da se pokreću van mreže, čak i kada koristite veb-pregledač na mobilnom uređaju.
Ovaj članak uključuje primer upotrebe Twitter podataka. Još jednostavniji primer koji ne zahteva vezu je uključen u reference funkcija LoadData i SaveData.
Pogledajte ovaj video zapis da biste saznali kako da kreirate aplikacije sa podlogom omogućene za rad van mreže:
Ograničenja
LoadData i SaveData se kombinuju da formiraju jednostavan mehanizam za čuvanje malih količina podataka na lokalnom uređaju. Upotrebom ovih funkcija, možete dodati jednostavne vanmrežne mogućnosti svojoj aplikaciji.
Ove funkcije su ograničene količinom dostupne memorije aplikacije jer rade nad kolekcijom u memoriji. Dostupna memorija može varirati ovisno o uređaju, operativnom sistemu i memoriji koju Power Apps Mobile koristi, kao i složenosti aplikacije u pogledu ekrana i kontrola. Ako uskladištite više od nekoliko megabajta podataka, testirajte svoju aplikaciju s očekivanim scenarijima na uređajima na kojima očekujete da se pokrene. Obično ćete imati 30-70 megabajta dostupne memorije.
Funkcije takođe ne rešavaju automatski neusaglašenosti objedinjavanja kada se uređaj vrati na mrežu. Kakva je konfiguracija podataka koji se čuvaju i koji je način postupanja prilikom ponovnog povezivanja zavisi od kreatora kada piše izraze.
Za ažuriranja o mogućnostima van mreže, vratite se na ovu temu i pretplatite se na Power Apps blog.
Pregled
Kada dizajnirate vanmrežne scenarije, prvo bi trebalo da razmotrite kako vaše aplikacije rade sa podacima. Aplikacije u usluzi Power Apps primarno pristupaju podacima putem skupa konektora koje platforma pruža, kao što su SharePoint, Office 365 i Microsoft Dataverse. Takođe možete da napravite prilagođene konektore koji aplikacijama omogućavaju pristup bilo kojoj usluzi koja pruža RESTful krajnju tačku. To može biti Web API ili usluga poput Azure Functions. Svi ovi konektori koriste HTTPS over the Internet, što znači da vaši korisnici moraju biti na mreži da bi mogli pristupiti podacima i svim drugim mogućnostima koje usluga nudi.

Rukovanje podacima van mreže
U usluzi Power Apps možete filtrirati, pretraživati, sortirati, objedinjavati i manipulisati podacima na dosledan način, bez obzira na izvor podataka. Izvori se kreću od kolekcija u memoriji u aplikaciji do SharePoint lista u SQL bazama podataka i usluzi Dataverse. Zbog ove doslednosti, aplikaciju možete lako preusmeriti tako da koristi drugi izvor podataka. Što je još važnije za vanmrežne scenarije, možete koristiti lokalne kolekcije za upravljanje podacima bez skoro nikakve promene logike aplikacije. U stvari, lokalne kolekcije su primarni mehanizam za rukovanje podacima van mreže.
Gradnja vanmrežne aplikacije
Da biste održali fokus na vanmrežne aspekte razvoja aplikacija, ova tema ilustruje jednostavan scenario fokusiran oko usluge Twitter. Izgradićete aplikaciju koja omogućava čitanje Twitter postova i slanje tvitova dok ste van mreže. Kada se aplikacija vrati na mrežu, ona objavljuje tvitove i ponovno učitava lokalne podatke.
Na visokom nivou, aplikacija obavlja sledeće zadatke:
Kada korisnik otvori aplikaciju:
- Ako je uređaj na mreži, aplikacija preuzima podatke putem Twitter konektora i popunjava kolekciju tim podacima.
- Ako je uređaj van mreže, aplikacija učitava podatke iz lokalne keš datoteke koristeći funkciju LoadData.
- Korisnik može poslati tvitove. Ako je aplikacija na mreži, objaviće tvitove direktno na usluzi Twitter i osvežiće lokalni keš.
Svakih pet minuta dok je aplikacija na mreži:
- Aplikacija objavljuje sve tvitove u lokalnoj keš memoriji.
- Aplikacija osvežava lokalnu keš memoriju i čuva je koristeći funkciju SaveData.
1. korak: Dodajte Twitter praznoj aplikaciji za telefon
- U usluzi Power Apps Studio, odaberite Datoteka > Nova.
- Na pločici Prazna aplikacija, izaberite Raspored za telefon.
- Na kartici Prikaz izaberite Izvori podataka.
- U oknu Podaci izaberite Dodaj izvor podataka.
- Izaberite Nova veza > Twitter > Kreiraj.
- Unesite svoje akreditive, kreirajte vezu, a zatim zatvorite okno Podaci.
2. korak: Prikupite postojeće tvitove
U oknu Prikaz stabla izaberite Aplikacija, a zatim postavite njeno svojstvo OnStart prema ovoj formuli:
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" );
U oknu Prikaz stabla izaberite meni sa tri tačke za objekat Aplikacija, a zatim izaberite Run OnStart da biste pokrenuli tu formulu.

Napomena
Funkcije LoadData i SaveData mogu da pokažu grešku u programu Power Apps Studio jer ih pregledači ne podržavaju. Međutim, one će se normalno odvijati nakon što primenite aplikaciju na uređaj.
Ova formula proverava da li je uređaj na mreži:
- Ako je uređaj na mreži, formula učitava do 10 tvitova pomoću termina za pretragu „PowerApps“ u kolekciju LocalTweets.
- Ako je uređaj van mreže, formula učitava lokalnu keš memoriju iz datoteke koja se zove „LocalTweets“, ako je dostupna.
3. korak: Prikažite tvitove u galeriji
Na kartici Umetanje izaberite Galerija > Prazna fleksibilna visina.
Podesite svojstvo Items kontrole Galerija na
LocalTweets.U predložak galerije dodajte tri kontrole Oznaka i podesite svojstvo Text svake oznake na jednu od ovih vrednosti:
ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)ThisItem.TweetText
Tekst na poslednjoj oznaci napravite podebljanim, tako da galerija podseća na ovaj primer.

4. korak: Prikažite status veze
U galeriji umetnite oznaku, a zatim podesite njeno svojstvo Color na Crveno.
Podesite svojstvo Text najnovije oznake prema ovoj formuli:
If( Connection.Connected, "Connected", "Offline" )
Ova formula utvrđuje da li je uređaj na mreži. Ako jeste, prikazuje se oznaka Povezano; u suprotnom, prikazuje se Van mreže.
5. korak: Dodajte polje za sastavljanje tvitova
Ispod oznake statusa veze, umetnite kontrolu tipa unos teksta i preimenujte je u NewTweetTextInput.
Podesite svojstvo Default polja za unos teksta na
"".
6. korak: Dodajte dugme za objavljivanje tvita
Ispod polja za unos teksta dodajte kontrolu dugme i podesite njegovo svojstvo Text na ovu vrednost:
"Tweet"Podesite svojstvo OnSelect dugmeta prema ovoj formuli:
If( Connection.Connected, Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ), Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} ); SaveData( LocalTweetsToPost, "LocalTweetsToPost" ) ); Reset( NewTweetTextInput );U svojstvu OnStart za Aplikaciju, dodajte liniju 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
Ova formula utvrđuje da li je uređaj na mreži:
- Ako je uređaj na mreži, odmah će objaviti tvit.
- Ako je uređaj van mreže, snimiće tvit u kolekciju LocalTweetsToPost i sačuvaće je na uređaju.
Zatim formula resetuje tekst u polju za unos teksta.
7. korak: Proverite nove tvitove
Desno od dugmeta, dodajte kontrolu Tajmer.

Podesite svojstvo tajmera Duration na 300000.
Podesite svojstva tajmera AutoStart i Repeat na tačno.
Podesite svojstvo tajmera OnTimerEnd prema ovoj formuli:
If( Connection.Connected, ForAll( LocalTweetsToPost, Twitter.Tweet( "", {tweetText: tweetText} ) ); Clear( LocalTweetsToPost ); ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) ); SaveData( LocalTweets, "LocalTweets" ); )
Ova formula utvrđuje da li je uređaj na mreži. Ako jeste, aplikacija tvituje sve stavke u kolekciji LocalTweetsToPost, a zatim briše kolekciju.
Testiranje aplikacije
Otvorite aplikaciju pomoću rešenja Power Apps Mobile na mobilnom uređaju koji je povezan na internet.
Postojeći tvitovi se prikazuju u galeriji, a status prikazuje Povezano.
Prekinite vezu uređaja sa internetom tako što ćete omogućiti režim rada uređaja u avionu i onemogućiti Wi-Fi.
Oznaka statusa prikazuje da je aplikacija Van mreže.
Dok je uređaj van mreže, napišite tvit koji uključuje Power Apps, a zatim izaberite dugme Tvituj.
Tvit se skladišti lokalno u kolekciji LocalTweetsToPost.
Ponovo povežite uređaj na internet tako što ćete onemogućiti režim rada uređaja u avionu i omogućiti Wi-Fi.
U roku od pet minuta, aplikacija će objaviti tvit koji se prikazuje u galeriji.
Nadamo se da vam ovaj članak daje predstavu o mogućnostima koje Power Apps ima za izgradnju vanmrežnih aplikacija. Kao i uvek, šaljite nam povratne informacije na forum i podelite svoje primere vanmrežnih aplikacija na Power Apps blogu zajednice.