Vývoj plátnových aplikácií fungujúcich offline

Mobilní používatelia musia byť často produktívni, aj keď majú obmedzené alebo žiadne pripojenie. Pri vytváraní aplikácie na plátne môžete vykonávať tieto úlohy:

  • Otvorte Power Apps Mobil a spúšťajte aplikácie, keď zariadenie nie je pripojené k sieti.
  • Zistite, kedy je aplikácia offline, online alebo v pripojení účtovanom podľa objemu údajov pomocou signalizačného objektu Pripojenie.
  • Synchronizujte údaje medzi vaším zariadením a serverom.

Ak sa vaša aplikácia pripája k Dataverse, podpora offline je vstavaná. Power Apps vám umožní stiahnuť dáta do vášho zariadenia a nahrať zmeny späť do Dataverse. Ak vaša aplikácia nepoužíva Dataverse, môžete použiť kolekcie a využiť LoadData a SaveData funkcie pre základné ukladanie v režime offline.

Poznámka

  • Možnosť offline pre aplikácie plátna je k dispozícii pri spustení aplikácií pomocou natívnych Power Apps mobilných prehrávačov na iOS, Android a Windows.
  • Aplikácie plátna spustené vo webových prehliadačoch sa nedajú spustiť offline, ani keď používate webový prehliadač na mobilnom zariadení.
  • Aplikácie plátna v Teams sú obmedzené na 1 MB údajov prostredníctvom funkcií LoadData a SaveData—užitočné pre malý počet textových reťazcov, čísel a dátumov. Použitie obrázkov alebo iných médií je pre tento limit nevhodné. Viac informácií: referencia funkcie LoadData a SaveData

Povoľte offline podporu v aplikácii canvas založenej na Dataverse

V prípade aplikácií plátna založených na Microsoft Dataverse musíte použiť funkciu offline, ktorá je vstavaná v prostredí offline-first . Ďalšie informácie nájdete v časti Nastavenie mobilného režimu offline pre aplikácie plátna a Práca s aplikáciami plátna v režime offline. Prepnutím vypínača môže vaša aplikácia pracovať s Dataverse údajmi, nech ste kdekoľvek, so sieťovým pripojením alebo bez neho. Stačí zostaviť aplikáciu pomocou štandardných Power Fx vzorcov a funkcia offline zvládne všetku zložitosť za vás.

Pre všetky ostatné konektory použite LoadData a SaveData

Táto časť obsahuje príklad použitia údajov služby Twitter. Ešte jednoduchší príklad, ktorý nevyžaduje pripojenie, je súčasťou LoadData a referencia funkcie SaveData.

Pozrite si toto video a zistite, ako vytvoriť offline aplikácie plátna, ktoré nepoužívajú Dataverse dáta:

Obmedzenia

LoadData a SaveData skombinujte a vytvorte jednoduchý mechanizmus na ukladanie malého množstva údajov do miestneho zariadenia. Použitím tejto funkcie môžete pridať jednoduché offline možnosti k svojej aplikácii.

Tieto funkcie sú obmedzené množstvom dostupnej pamäte aplikácií, keď fungujú v kolekcii v pamäti. Dostupná pamäť sa môže líšiť v závislosti od zariadenia, operačného systému a pamäte Power Apps Mobile využitie a zložitosť aplikácie z hľadiska obrazoviek a ovládacích prvkov. Ak ukladáte viac ako niekoľko megabajtov údajov, otestujte svoju aplikáciu s očakávanými scenármi na zariadeniach, na ktorých očakávate spustenie. Vo všeobecnosti budete mať k dispozícii 30 až 70 megabajtov dostupnej pamäte.

Funkcie tiež neriešia automaticky konflikty zlúčenia, keď je zariadenie online. Konfigurácia toho, aké údaje sú uložené a ako zvládnuť opätovné pripojenie, je na výrobcovi pri písaní výrazov.

Ak chcete získať informácie o možnostiach offline, vráťte sa k tejto téme a prihláste sa na odber blogu Power Apps.

Prehľad

Pri navrhovaní scenárov offline by ste mali najskôr zvážiť, ako vaše aplikácie pracujú s údajmi. Aplikácie v údajoch primárneho prístupu Power Apps k údajom prostredníctvom súboru konektory, ktoré platforma poskytuje, napríklad SharePoint, Office 365 a Microsoft Dataverse. Môžete tiež vytvoriť vlastné konektory, ktoré umožnia aplikáciám pristupovať k akejkoľvek službe, ktorá poskytuje koncový bod RESTful. Môže to byť webové rozhranie API alebo služba, napríklad Azure Functions. Všetky tieto konektory používajú HTTPS na internete, čo znamená, že používatelia musia byť online, aby konektory mohli pristupovať k údajom a iným funkciám, ktoré táto služba ponúka.

Aplikácia Power Apps s konektormi.

Manipulácia s offline údajmi

V Power Apps, môžete údaje filtrovať, vyhľadávať, triediť, agregovať a manipulovať s nimi konzistentným spôsobom bez ohľadu na zdroj údajov. Zdroje siahajú od kolekcií v pamäti aplikácie cez zoznamy vytvorené pomocou zoznamov Microsoft až po databázy SQL a Dataverse. Z dôvodu tejto konzistencie môžete aplikáciu ľahko presmerovať na použitie iného zdroja údajov. Dôležitejšie pre offline scenára je, že vám tiež umožňuje používať miestne kolekcie pre správu údajov s takmer žiadnymi zmenami v logike aplikácie. V skutočnosti sú miestne kolekcie hlavným mechanizmom na spracovanie údajov v režime offline.

Zostavenie offline aplikácie

Teraz sa sústredíme na offline aspekty vývoja aplikácií, táto téma vám ukáže jednoduchý scenár zameraný na Twitteri. Vytvoríme aplikáciu, ktorá vám umožní čítať twitterové príspevky a odosielať tweety, aj keď ste v režime offline. Keď aplikácia prejde do režimu online, uverejní tweety a opätovne načíta miestne údaje.

Aplikácia na vysokej úrovni vykonáva tieto úlohy:

  • Keď používateľ otvorí aplikáciu:

    • Ak je zariadenie v režime online, údaje načíta údaje priamo z konektoru Twittera a vyplní nimi kolekciu.
    • Ak je zariadenie offline, aplikácia načíta údaje z lokálneho vyrovnávacieho súboru pomocou funkcie LoadData.
    • Používateľ môže odosielať tweety. Ak je aplikácia online, zverejní tweety priamo na Twitteri a obnoví lokálnu vyrovnávaciu pamäť.
  • Keď je aplikácia online, každých päť minút:

    • Aplikácia zverejní všetky tweety v miestnej vyrovnávacej pamäti.
    • Aplikácia aktualizuje miestnu vyrovnávaciu pamäť a uloží ju pomocou funkcie SaveData.

Krok 1: Pridajte Twitter do prázdnej telefónnej aplikácie

  1. Vytvorte prázdnu aplikáciu plátna s rozložením pre telefón.
  2. Na karte Zobraziť vyberte položku Zdroje údajov.
  3. Na table Údaje vyberte položku Pridať zdroj údajov.
  4. Stlačte možnosť Nové pripojenie > Twitter > Vytvoriť.
  5. Zadajte svoje poverenia, vytvorte pripojenie a potom zatvorte tablu Údaje.

Krok 2: Zhromaždite existujúce tweety

  1. Na table Stromová štruktúra, vyberte Aplikáciu a potom nastavte jej vlastnosť OnStart podľa tohto vzorca:

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

    Vzorec pre načítanie tweetov.

  2. V table Stromová štruktúra na paneli vyberte ponuku elipsy pre Aplikáciu a potom vyberte Spustite program OnStart na spustenie tohto vzorca.

    Spustenie vzorca na načítanie tweetov.

    Poznámka

    Funkcie LoadData a SaveData môžu vykazovať chybu v Power Apps Studio, pretože ich prehliadač nepodporuje. Po nasadení tejto aplikácie do zariadenia však budú fungovať normálne.

Tento vzorec skontroluje, či je zariadenie online:

  • Ak je zariadenie online, vzorec načíta až 10 tweetov s výrazom vyhľadávania PowerApps do kolekcie LocalTweets.
  • Ak je zariadenie offline, vzorec načíta miestnu vyrovnávaciu pamäť zo súboru s názvom LocalTweets, ak je k dispozícii.

Krok 3: Zobrazte tweety v galérii

  1. Na karte Vložiť vyberte položku Galéria > Prázdna s prispôsobiteľnou výškou.

  2. Nastavte vlastnosť Položky ovládacieho prvku Galéria na LocalTweets.

  3. V šablóne galérie pridajte tri ovládacie prvky Označenie a nastavte vlastnosť Text každého označenia na jednu z týchto hodnôt:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Text v poslednom označení označte tučným písmom, aby sa galéria podobala tomuto príkladu.

    Galéria zobrazujúca ukážkové tweety.

Krok 4: Zobraziť stav pripojenia

  1. Pod galériu vložte označenie a potom ho nastavte vlastnosť Farba na Červená.

  2. Nastavte vlastnosť Text najnovšieho označenia na tento vzorec:

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

Tento vzorec určuje, či je zariadenie online. Ak áno, označenie zobrazuje Pripojené; v opačnom prípade zobrazuje možnosť Offline.

Krok 5: Pridajte pole na vytvorenie tweetov

  1. Pod stavom pripojenia označenia vložte ovládací prvok Zadávanie textu a premenujte ju NewTweetTextInput.

  2. Nastavte predvolenú vlastnosť poľa zadávania textu na "".

    Galéria nad informáciami o stave a poľom testového vstupu.

Krok 6: Pridanie tlačidla na uverejnenie tweetu

  1. Do poľa na zadávanie textu pridajte ovládací prvok Tlačidlo a nastavte jeho vlastnosť Text na túto hodnotu:

    "Tweet"

  2. Vlastnosť tlačidla OnSelect nastavte na tento vzorec:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Vo vlastnosti OnStart pre Aplikáciu, na koniec vzorca pridajte riadok:

    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
    

    Spustite vzorec na načítanie tweetov s nekompletovaným riadkom.

Tento vzorec určuje, či je zariadenie online:

  • Ak je zariadenie online, okamžite sa zverejní tweet.
  • Ak je zariadenie offline, zachytí tweet v kolekcii LocalTweetsToPost a uloží ho do zariadenia.

Vzorec potom resetuje text v poli zadávania textu.

Krok 7: Skontrolujte nové tweety

  1. Na pravej strane tlačidla pridajte ovládací prvok Časomer.

    Konečné verzie aplikácií.

  2. Nastavte vlastnosť Trvanie časovača na 300000.

  3. Nastavte vlastnosti AutoStart a Repeat časovača na príznak true.

  4. Nastavte OnTimerEnd časovača na tento vzorec:

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

Tento vzorec určuje, či je zariadenie online. Ak je to tak, aplikácia tweetuje všetky položky v zbierke LocalTweetsToPost a potom vyčistí zbierku.

Otestovanie aplikácie

  1. Otvorte aplikáciu pomocou Power Apps Mobile na mobilnom zariadení pripojenom k internetu.

    Existujúce tweety sa zobrazia v galérii a zobrazí sa ich stav Pripojené.

  2. Odpojte zariadenie od internetu povolením režimu v lietadle a vypnutím Wi-Fi.

    Označenie stavu ukazuje, že ide o aplikáciu offline.

  3. Keď je zariadenie offline, napíšte tweet, ktorý obsahuje Power Apps, a potom stlačte tlačidlo Tweet.

    Tweet sa uloží miestne do kolekcie LocalTweetsToPost.

  4. Opätovne pripojte zariadenie k internetu zakázaním režimu v lietadle a aktiváciou Wi-Fi.

    Do piatich minút aplikácia odošle tweet, ktorý sa zobrazí v galérii.

Dúfame, že vám tento článok poskytol dobrú predstavu o tom, aké možnosti Power Apps ponúka pri vytváraní offline aplikácií. Ako vždy nám môžete do fóra poslať svoje pripomienky a v blogu komunity Power Apps sa s ostatnými môžete podeliť o ukážky svojich offline aplikácií.

Poznámka

Môžete nás informovať o svojich voľbách jazyka pre dokumentáciu? Absolvujte krátky prieskum. (upozorňujeme, že tento prieskum je v angličtine)

Prieskum bude trvať približne sedem minút. Nezhromažďujú sa žiadne osobné údaje (vyhlásenie o používaní osobných údajov).