Dezvoltați aplicații proiectate pe pânză adaptate pentru funcționare offline

Utilizatorii de telefonie mobilă trebuie deseori să fie productivi chiar și atunci când conectivitatea este limitată sau lipsește. Când construiți o aplicație proiectată pe pânză, puteți efectua aceste activități:

  • Deschideți Power Apps Mobile și rulați aplicații atunci când dispozitivul nu este conectat la rețea.
  • Determinați când o aplicație este offline, online sau într-o conexiune contorizată utilizând obiectul semnal Connection.
  • Sincronizați datele între dispozitiv și server.

Dacă aplicația dvs. se conectează la Dataverse, asistența offline este încorporată. Power Apps va permite să descărcați date pe dispozitiv și să încărcați modificările înapoi în Dataverse. Dacă aplicația dvs. nu folosește Dataverse, puteți utiliza colecții și puteți folosi LoadData și SaveData funcții pentru stocarea de bază când este offline.

Notă

  • Capacitatea offline pentru aplicațiile canvas este disponibilă în timp ce rulează aplicațiile folosind playerele native Power Apps Mobile pe iOS, Android și Windows.
  • Aplicațiile Canvas care rulează în browserele web nu pot rula offline, chiar și atunci când se utilizează un browser web pe un dispozitiv mobil.
  • Aplicațiile proiectate pe pânză din Teams sunt limitate la 1 MB de date prin funcțiile LoadData și SaveData—utile pentru un număr mic de șiruri de text, numere și date. Utilizarea imaginilor sau a altor fișiere media nu este adecvată pentru această limită. Mai multe informatii: LoadData și SaveData referință la funcție

Activați asistența offline într-o aplicație canvas bazată pe Dataverse

Pentru aplicațiile canvas bazate pe Microsoft Dataverse, trebuie să utilizați capacitatea offline încorporată cu experiența offline-first . Pentru mai multe informații, consultați Configurarea offline pentru aplicațiile canvas și Lucrul offline cu aplicațiile canvas. Cu apăsarea unui comutator, aplicația dvs. poate funcționa cu Dataverse date oriunde v-ați afla, cu sau fără o conexiune la rețea. Creați-vă aplicația cu formule standard Power Fx și funcția offline se ocupă de toată complexitatea pentru dvs.

Utilizați LoadData și SaveData pentru toți ceilalți conectori

Această secțiune include un exemplu de utilizare a datelor Twitter. Un exemplu și mai simplu, care nu necesită conexiune, este inclus în referința funcției LoadData și SaveData.

Urmăriți acest videoclip pentru a afla cum să creați aplicații canvas offline care nu folosesc Dataverse date:

Limitări

LoadData și SSaveData se combină pentru a forma un mecanism simplu, care să stocheze cantități mici de date pe un dispozitiv local. Utilizând aceste funcții, puteți adăuga caracteristici offline simple la aplicația dvs.

Aceste funcții sunt limitate de memoria de aplicație disponibilă, deoarece funcționează într-o colecție aflată în memorie. Memoria disponibilă poate varia în funcție de dispozitiv, de sistemul de operare, de memoria folosită de Power Apps Mobile și de complexitatea aplicației în ceea ce privește ecranele și controalele. Dacă stocați mai mult de câțiva megaocteți de date, testați aplicația cu scenariile preconizate pe dispozitivele pe care vă așteptați să ruleze. În general, veți avea 30-70 megaocteți de memorie disponibilă.

De asemenea, funcțiile nu rezolvă automat conflictele de îmbinare atunci când un dispozitiv se conectează. Configurația cu privire la datele salvate și modul de gestionare a reconectării este la latitudinea producătorului atunci când scrieți expresii.

Pentru actualizări privind caracteristicile offline, reveniți la acest subiect și abonați-vă la blogul Power Apps.

Prezentare generală

Când proiectați scenarii offline, mai întâi luați în considerare modul în care aplicațiile dvs. lucrează cu datele. Aplicațiile din Power Apps accesează datele mai ales printr-un set de conectori pe care îi oferă platforma, cum ar fi SharePoint, Office 365 și Microsoft Dataverse. De asemenea, puteți construi conectori personalizați, care permit aplicațiilor să acceseze orice serviciu care furnizează un punct final RESTful. Acesta ar putea fi un API Web sau un serviciu precum Azure Functions. Toți acești conectori folosesc HTTPS pe internet, ceea ce înseamnă că utilizatorii dvs. trebuie să fie online pentru a accesa date și orice alte caracteristici pe care le oferă un serviciu.

Aplicație Power Apps cu conectori.

Manipularea datelor offline

În Power Apps, puteți filtra, căuta, sorta, agrega și manipula datele într-un mod consecvent, indiferent de sursa de date. Sursele variază de la colecțiile din memorie din aplicație la liste create folosind listele Microsoft din bazele de date SQL și Dataverse. Datorită acestei consecvențe, puteți redirecționa cu ușurință o aplicație astfel încât să utilizeze o altă sursă de date. Mai important pentru scenariile offline, puteți utiliza colecții locale pentru gestionarea datelor, fără aproape nicio modificare a logicii unei aplicații. De fapt, colecțiile locale sunt principalul mecanism pentru gestionarea datelor offline.

Construiți o aplicație offline

Pentru a menține atenția pe aspectele offline ale dezvoltării aplicațiilor, acest subiect ilustrează un scenariu simplu, axat pe Twitter. Veți construi o aplicație care vă permite să citiți postări Twitter și să trimiteți tweeturi în timp ce sunteți offline. Când aplicația se conectează, postează tweeturi și reîncarcă datele locale.

La nivel înalt, aplicația efectuează aceste activități:

  • Când utilizatorul deschide aplicația:

    • Dacă dispozitivul este online, aplicația preia date prin conectorul Twitter și populează o colecție cu datele respective.
    • Dacă dispozitivul este deconectat, aplicația încarcă datele dintr-un fișier cache local folosind funcția LoadData.
    • Utilizatorul poate trimite tweeturi. Dacă aplicația este online, postează tweeturile direct pe Twitter și reîmprospătează memoria cache locală.
  • La fiecare cinci minute, când aplicația este online:

    • Aplicația postează orice tweeturi în cache-ul local.
    • Aplicația reîmprospătează memoria cache locală și o salvează folosind funcția SaveData.

Pasul 1: adăugați Twitter la o aplicație de telefon fără conținut

  1. Creați o aplicație proiectată pe planșă necompletată cu aspectul de tip Telefon.
  2. În fila Vizualizare, selectați Surse de date.
  3. În panoul Date, selectați Adăugare sursă date.
  4. Selectați Conexiune nouă > Twitter > Creare.
  5. Introduceți datele de acreditare, creați conexiunea, apoi închideți panoul Date.

Pasul 2: colectați tweeturile existente

  1. În panoul Vizualizare arborescentă, selectați Aplicație, apoi setați-i proprietatea OnStart la această formulă:

    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" );
    

    Formulă de încărcare a tweeturilor.

  2. În panoul Vizualizare arborescentă, selectați meniul puncte de suspensie pentru obiectul Aplicație, apoi selectați Rulare OnStart pentru a rula formula respectivă.

    Rulați formula de încărcare a tweeturilor.

    Notă

    Funcțiile LoadData și SaveData pot afișa o eroare în Power Apps Studio, deoarece browserele nu le acceptă. Cu toate acestea, se vor comporta normal după ce implementați această aplicație pe un dispozitiv.

Această formulă verifică dacă dispozitivul este online:

  • Dacă dispozitivul este online, formula încarcă până la 10 tweeturi cu termenul de căutare „PowerApps” într-o colecție LocalTweets.
  • Dacă dispozitivul este deconectat, formula încarcă memoria cache locală dintr-un fișier numit „LocalTweets”, dacă este disponibil.
  1. În fila Inserare, selectați Galerie > Necompletată cu înălțime flexibilă.

  2. Setați proprietatea Items a controlului Gallery la LocalTweets.

  3. În șablonul galeriei, adăugați trei controale Etichetă și setați proprietatea Text a fiecărei etichete la una dintre aceste valori:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Aplicați formatarea de tip aldin textului din ultima etichetă, astfel încât galeria să fie similară cu acest exemplu.

    Galerie care afișează tweeturi de probă.

Pasul 4: afișați starea conexiunii

  1. Sub galerie, inserați o etichetă, apoi setați proprietatea Culoare a acesteia la Roșu.

  2. Setați proprietatea Text a celei mai recente etichete la această formulă:

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

Această formulă determină dacă dispozitivul este online. Dacă este conectat, eticheta afișează Conectat; altfel, afișează Deconectat.

Pasul 5: adăugați o casetă pentru a compune tweeturi

  1. Sub eticheta de stare a conexiunii, introduceți un control Introducere text și redenumiți-l NewTweetTextInput.

  2. Setați proprietatea Default a casetei de introducere a textului la "".

    Galerie peste informațiile despre stare și caseta de introducere a textului.

Pasul 6: adăugați un buton pentru a posta tweetul

  1. Sub caseta de introducere a textului, adăugați un control Buton și setați-i proprietatea Text la această valoare:

    "Tweet"

  2. Setați proprietatea OnSelect a butonului la această formulă:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. În proprietatea OnStart pentru App, adăugați o linie la sfârșitul formulei:

    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
    

    Rulați formula pentru a încărca tweeturi cu o linie fără comentarii.

Această formulă determină dacă dispozitivul este online:

  • Dacă dispozitivul este online, postează imediat tweetul.
  • Dacă dispozitivul este deconectat, capturează tweetul într-o colecție LocalTweetsToPost și o salvează pe dispozitiv.

Apoi, formula resetează textul din caseta de introducere a textului.

Pasul 7: verificați dacă există tweeturi noi

  1. În partea dreaptă a butonului, adăugați un control Temporizator.

    Aplicații finale.

  2. Setați proprietatea Duration a temporizatorului la 300000.

  3. Setați proprietățile AutoStart și Repeat ale temporizatorului la true.

  4. Setați proprietatea OnTimerEnd a temporizatorului la această formulă:

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

Această formulă determină dacă dispozitivul este online. Dacă este, aplicația publică toate elementele din colecția LocalTweetsToPost și șterge colecția.

Testați aplicația

  1. Deschideți aplicația folosind Power Apps Mobile pe un dispozitiv mobil conectat la Internet.

    Tweeturile existente apar în galerie, iar starea indică Conectat.

  2. Deconectați dispozitivul de la internet activând modul avion și dezactivând Wi-Fi.

    Eticheta de stare arată că aplicația este Deconectat.

  3. În timp ce dispozitivul este deconectat, scrieți un tweet care include Power Apps, apoi selectați butonul Tweet.

    Tweetul este stocat local în colecția LocalTweetsToPost.

  4. Reconectați dispozitivul la internet dezactivând modul avion și activând Wi-Fi.

    În cinci minute, aplicația postează tweetul, care apare în galerie.

Sperăm ca acest articol să vă ofere o idee despre caracteristicile Power Apps pentru crearea de aplicații offline. Ca întotdeauna, vă rugăm să ne oferiți feedback în cadrul forumului nostru și partajați exemplele dvs. de aplicații offline în blogul comunității Power Apps.

Notă

Ne puteți spune care preferințele dvs. lingvistice pentru documentație? Răspundeți la un chestionar scurt. (rețineți că acest chestionar este în limba engleză)

Chestionarul va dura aproximativ șapte minute. Nu sunt colectate date personale (angajament de respectare a confidențialității).