Vývoj aplikací plátna fungujících offline

Mobilní uživatelé musí být často produktivní, i když mají omezené nebo žádné připojení. Při vytváření aplikace na plátně můžete provádět tyto úkoly:

  • Otevřte Power Apps Mobile a spusťte aplikace v režimu offline.
  • Zjistěte, kdy je aplikace offline, online nebo v připojení účtovaném podle objemu dat pomocí signalizačního objektu Připojení.
  • Pro základní ukládání dat v režimu offline můžete využít kolekce a funkce, jako jsou třeba LoadData a SaveData.

Poznámka

Tento článek obsahuje příklad použití dat Twitteru. Ještě jednodušší příklad, který nevyžaduje připojení, je ve odkazu na funkce LoadData a SaveData.

Podívejte se na toto video a zjistěte, jak vytvořit aplikaci plátna povolenou offline:

Omezení

LoadData a SaveData se kombinují a tvoří jednoduchý mechanismus pro ukládání malého množství dat na lokálním zařízení. Použitím těchto funkcí můžete přidat jednoduché funkce offline do vaší aplikace.

Tyto funkce jsou omezeny množstvím dostupné paměti aplikací, protože fungují v kolekci v paměti. Dostupná paměť se může lišit v závislosti na zařízení, operačním systému, paměti, kterou využívá Power Apps Mobile a složitosti aplikace z hlediska obrazovek a ovládacích prvků. Pokud ukládáte více než několik megabajtů dat, otestujte svou aplikaci s očekávanými scénáři na zařízeních, na kterých očekáváte, že bude spuštěna. Obvykle budete mít k dispozici 30–70 megabajtů volné paměti.

Funkce také automaticky neřeší sloučení konfliktů, když je zařízení online. Konfigurace toho, jaká data jsou uložena a jak zpracovat opětovné připojení, je na výrobci při psaní výrazů.

Chcete-li aktualizovat možnosti offline, vraťte se k tomuto tématu a přihlaste se k odběru blogu Power Apps.

Přehled

Při navrhování scénářů offline byste měli nejprve zvážit, jak vaše aplikace pracují s daty. Aplikace v Power Apps primárně přistupují k datům prostřednictvím sady konektorů, které platforma poskytuje, například SharePoint, Office 365, a Microsoft Dataverse. Můžete si také vytvořit vlastní konektory, které aplikacím umožní přistupovat k libovolné službě poskytující koncový bod RESTful. Může se jednat o webové rozhraní API nebo službu, třeba Azure Functions. Všechny tyto konektory používají HTTPS přes internet, což znamená, že uživatelé musí být online, aby konektory mohly přistupovat k datům a dalším funkcím, které služba nabízí.

Aplikace Power Apps s konektory.

Manipulace s offline daty

V Power Apps můžete filtrovat, vyhledávat, třídit, agregovat a manipulovat s daty konzistentně bez ohledu na zdroj dat. Zdroje sahají od kolekcí v paměti uvnitř aplikace přes seznamy vytvořené v aplikaci Seznamy Microsoft až po databáze SQL a Dataverse. Z důvodu této konzistence můžete aplikaci snadno přepracovat, aby použila jiný zdroj dat. Důležitější pro offline scénáře je to, že můžete používat místní kolekce pro správu dat s naprosto minimem změn v logice aplikace. Ve skutečnosti místní kolekce představují hlavní mechanismus pro zpracování offline dat.

Sestavení offline aplikace

Pokud chcete obrátit pozornost na offline aspekty vývoje aplikací, toto téma ilustruje jednoduchý scénář zaměřený na Twitter. Vytvoříte aplikaci, která vám umožní číst twitterové příspěvky a odesílat tweety, i když jste offline. Jakmile aplikace bude zase online, zveřejní tweety a znovu načte místní data.

Aplikace na vysoké úrovni plní tyto úkoly:

  • Když uživatel otevře aplikaci:

    • Pokud je zařízení online, aplikace načte data z konektoru Twitteru a těmito daty naplní kolekci.
    • Pokud je zařízení offline, aplikace načte data ze souboru místní mezipaměti pomocí funkce LoadData.
    • Uživatel může odesílat tweety. Pokud je aplikace online, zaúčtuje tweety přímo na Twitter a obnoví místní mezipaměť.
  • Každých pět minut, když je aplikace online:

    • Aplikace zveřejní všechny tweety v místní mezipaměti.
    • Aplikace obnoví místní mezipaměť a uloží ji pomocí funkce SaveData.

Krok 1: Přidejte Twitter do prázdné aplikace pro telefon

  1. Vytvořte prázdnou aplikaci plátna s rozložením pro Telefon.
  2. Na kartě Zobrazení vyberte možnost Zdroje dat.
  3. V podokně Data vyberte Přidat zdroj dat.
  4. Vyberte Nové připojení > Twitter > Vytvořit.
  5. Zadejte přihlašovací údaje, vytvořte připojení a zavřete podokno Data.

Krok 2: Shromažděte stávající tweety

  1. V podokně Stromové zobrazení vyberte Aplikace a poté nastavte vlastnost OnStart podle tohoto vzorce:

    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 pro načtení tweetů.

  2. V podokně Stromové zobrazení vyberte tři tečky pro objekt Aplikace a potom vyberte Spustit OnStart pro spuštění vzorce.

    Spusťte vzorec pro načtení tweetů.

    Poznámka

    Funkce LoadData a SaveData mohou ukazovat chybu v Power Apps Studio, protože je prohlížeče nepodporují. Po nasazení této aplikace do zařízení však budou fungovat normálně.

Tento vzorec zkontroluje, zda je zařízení online:

  • Pokud je zařízení online, vzorec načte až 10 tweetů s hledaným termínem „PowerApps“ do kolekce LocalTweets.
  • Pokud je zařízení offline, vzorec načte místní mezipaměť ze souboru s názvem "LocalTweets", pokud je k dispozici.
  1. Na kartě Vložit vyberte Galerie > Prázdná flexibilní výška.

  2. Nastavte vlastnost Items vlastnosti ovládacího prvku Galerie do LocalTweets.

  3. V šabloně galerie přidejte tři ovládací prvky Popisek a nastavte vlastnost Text každého štítku na jednu z těchto hodnot:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Text v posledním štítku zvýrazněte tak, aby se galerie podobala tomuto příkladu.

    Galerie zobrazující ukázkové tweety.

Krok 4: Zobrazit stav připojení

  1. Pod galerii vložte popisek a poté nastavte jeho vlastnost Barva na Červenou.

  2. Nastavte vlastnost Text nejnovějšího popisku na tento vzorec:

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

Tento vzorec určuje, zda je zařízení online. Pokud je, popisek zobrazuje Připojeno, v opačném případě je Offline.

Krok 5: Přidejte pole k vytvoření tweetů

  1. Pod štítek stavu připojení vložte ovládací prvek Textové zadání a přejmenujte jej na NewTweetTextInput.

  2. Nastavte vlastnost textového pole Výchozí na "".

    Galerie přes stavové informace a textové pole.

Krok 6: Přidání tlačítka pro zveřejnění tweetu

  1. Do textového pole zadejte ovládací prvek Tlačítko a nastavte jeho vlastnost Text na tuto hodnotu:

    "Tweet"

  2. Vlastnost OnSelect tlačítka nastavte na tento vzorec:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Ve vlastnosti OnStart pro Aplikace přidejte na konec vzorce řádek:

    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
    

    Spusťte vzorec pro načtení tweetů s nekomentovaným řádkem.

Tento vzorec určuje, zda je zařízení online:

  • Pokud je zařízení online, okamžitě zveřejní tweet.
  • V offline režimu zařízení zachytí tweet v kolekci LocalTweetsToPost a uloží ho do zařízení.

Vzorec potom resetuje text v textovém poli.

Krok 7: Zkontrolujte nové tweety

  1. Na pravé straně tlačítka přidejte a ovládací prvek Časovač.

    Konečné aplikace.

  2. Vlastnost časovače Duration nastavte na 300000.

  3. Nastavte vlastnosti časovače AutoStart a Repeat na true.

  4. Vlastnost časovače OnTimerEnd nastavte na následující 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, zda je zařízení online. Pokud ano, aplikace tweetuje všechny položky v kolekci LocalTweetsToPost a poté vyčistí sbírku.

Otestování aplikace

  1. Otevřete aplikaci pomocí Power Apps Mobile na mobilním zařízení připojeném k internetu.

    Existující tweety se objeví v galerii a zobrazí se stav Připojeno.

  2. Odpojte zařízení od Internetu povolením režimu letadla a deaktivací Wi-Fi.

    Stavový štítek ukazuje, že aplikace je Offline.

  3. Když je zařízení offline, napište tweet, který obsahuje Power Apps a poté vyberte tlačítko Tweet.

    Tweet se uloží místně do kolekce LocalTweetsToPost.

  4. Opět připojte zařízení k Internetu zakázáním režimu letadla a povolením Wi-Fi.

    Do pěti minut odešle aplikace tweet, který se objeví v galerii.

Doufáme, že jste z tohoto článku získali představu o možnostech, které Power Apps nabízí pro vytváření offline aplikací. Jako vždy nám můžete do fóra poslat svůj názor a podělit se o ukázky svých offline aplikací na blogu komunity Power Apps.

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).