Vývoj plátnových aplikácií fungujúcich offlineDevelop offline-capable canvas apps

Používateľom mobilných zariadení často potrebné, aby boli produktívni aj keď máte obmedzené alebo žiadne pripojenie.Mobile users often need to be productive even when they have limited or no connectivity. Keď vytvárate aplikáciu plátna, môžete vykonávať tieto úlohy:When you build a canvas app, you can perform these tasks:

  • Otvorte PowerApps Mobile a spúšťať aplikácie, keď ste offline.Open PowerApps Mobile and run apps when offline.
  • Zistiť, kedy je aplikácia offline, online alebo v pripojení účtovanom podľa objemu údajov pomocou signalizačného objektu Pripojenie.Determine when an app is offline, online, or in a metered connection by using the Connection signal object.
  • Na základné ukladanie údajov v režime offline môžete využiť kolekcie a také funkcie, ako sú napríklad LoadData a SaveData.Use collections and leverage functions such as LoadData and SaveData for basic data storage when offline.

ObmedzeniaLimitations

LoadData a SaveData kombinovať tvoriť jednoduchý mechanizmus na ukladanie malých množstva údajov na lokálnom zariadení.LoadData and SaveData combine to form a simple mechanism to store small amounts of data on a local device. Pomocou týchto funkcií, môžete pridať jednoduchý možnostiach offline do vašej aplikácie.By using these functions, you can add simple offline capabilities to your app.

Tieto funkcie sú obmedzené množstvo pamäte, k dispozícii aplikácia pretože, keďže fungujú na Kolekcia v pamäti.These functions are limited by the amount of available app memory because they operate on an in-memory collection. Dostupnej pamäte sa môže líšiť v závislosti od zariadenia, operačný systém, pamäť, ktorú používa PowerApps Mobile a zložitosti aplikácie z hľadiska obrazoviek a ovládacích prvkov.Available memory can vary depending on the device, the operating system, the memory that PowerApps Mobile uses, and the complexity of the app in terms of screens and controls. Ak uložíte viac ako niekoľko MB údajov, Otestujte svoju aplikáciu pomocou očakávaný scenáre v zariadeniach, na ktoré očakávate, aby bol spustený.If you store more than a few megabytes of data, test your app with expected scenarios on the devices on which you expect it to run. Vo všeobecnosti budete mať 30-70 MB dostupnej pamäte.You'll generally have 30-70 megabytes of available memory.

Funkcie tiež automaticky nevyrieši konflikty zlúčenia pri zariadenie prejde do režimu online.The functions also don't automatically resolve merge conflicts when a device comes online. Konfigurácia na tom, aké údaje sa uloží a ako riešiť generoval je maximálne tvorcu pri písaní výrazy.Configuration on what data is saved and how to handle reconnection is up to the maker when writing expressions.

Pre aktuálne informácie o možnostiach offline, vráťte sa do tejto témy a prihlásiť sa na odber blogu PowerApps.For updates on offline capabilities, return to this topic, and subscribe to the PowerApps blog.

PrehľadOverview

Pri navrhovaní offline scenárov, by ste mali najprv zvážiť ako vaše aplikácie pracujú s údajmi.When you design offline scenarios, you should first consider how your apps work with data. Aplikácie v službe PowerApps pristupujú k údajom predovšetkým prostredníctvom množiny konektory , ktoré platforma ponúka, napríklad SharePoint, Office 365 a Common Data Service.Apps in PowerApps primarily access data through a set of connectors that the platform provides, such as SharePoint, Office 365, and Common Data Service. Môžete tiež vytvoriť vlastné konektory, ktoré umožnia aplikáciám pristupovať k akejkoľvek službe, ktorá poskytuje koncový bod RESTful.You can also build custom connectors that enable apps to access any service that provides a RESTful endpoint. Môže to byť webové rozhranie API alebo služba, napríklad Azure Functions.This could be a Web API or a service such as 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.All these connectors use HTTPS over the Internet, which means your users must be online for them to access data and any other capabilities that a service offers.

Aplikácia PowerApps s konektormi

Manipulácia s offline údajmiHandling offline data

V službe PowerApps, ste môžete filtrovať, vyhľadávať, zoraďovať, agregovať a spracovávať údaje konzistentným spôsobom bez ohľadu na zdroj údajov.In PowerApps, you can filter, search, sort, aggregate, and manipulate data in a consistent way regardless of the data source. Zdrojom môže byť kolekcia v pamäti v aplikácii so zoznamami lokality SharePoint databáza SQL alebo Common Data Service.Sources range from in-memory collections in the app to SharePoint lists to SQL databases and Common Data Service. Z dôvodu tejto konzistencie, môžete jednoducho presmerovať aplikácie používať iný zdroj údajov.Because of this consistency, you can easily retarget an app to use a different data source. Ešte dôležitejšie pre offline scenárov, môžete použiť miestne kolekcie pre správu údajov s takmer žiadnymi zmenami v logike aplikácie.More importantly for offline scenarios, you can use local collections for data management with almost no changes to an app's logic. V skutočnosti sú miestne kolekcie hlavným mechanizmom na spracovanie údajov v režime offline.In fact, local collections are the primary mechanism for handling offline data.

Vytvoriť aplikáciu v režime offlineBuild an offline app

Teraz sa sústredíme na offline aspekty vývoja aplikácií, táto téma ilustruje jednoduchý scenár zameraný na Twitteri.To keep the focus on the offline aspects of app development, this topic illustrates a simple scenario focused around Twitter. Vytvoríte aplikáciu, ktorá vám umožňuje čítať Twitterové príspevky a odosielať tweety, aj v režime offline.You'll build an app that enables you to read Twitter posts and submit tweets while being offline. Keď aplikácia prejde do režimu online, uverejní tweety a opätovne načíta miestne údaje.When the app comes online, the app posts tweets and reloads the local data.

Na vyššej úrovni, aplikácia vykoná nasledujúce úlohy:At a high level, the app performs these tasks:

  • Keď používateľ otvorí v aplikácii:When the user opens the app:

    • Ak je zariadenie online, aplikácia stiahne údaje cez konektor Twitter a naplní kolekciu s nimi.If the device is online, the app fetches data through the Twitter connector and populates a collection with that data.
    • Ak je zariadenie offline, aplikácia načíta údaje z lokálnej vyrovnávacej pamäte súboru s použitím LoadData funkcie.If the device is offline, the app loads the data from a local cache file by using the LoadData function.
    • Používateľom môžete odoslať tweety.The user can submit tweets. Ak aplikácia je online, uverejní tweety priamo na sieti Twitter a obnoví lokálnej vyrovnávacej pamäte.If the app is online, it posts the tweets directly to Twitter and refreshes the local cache.
  • Každých 5 minút, kým je aplikácia online:Every five minutes while the app is online:

    • Aplikácia uverejní všetky tweety do lokálnej vyrovnávacej pamäte.The app posts any tweets in the local cache.
    • Aplikácia obnoví lokálnej vyrovnávacej pamäte a uloží ho pomocou SaveData funkcie.The app refreshes the local cache and saves it by using the SaveData function.

Krok č. 1: Pridanie Twitter na prázdnu aplikáciu pre telefónStep 1: Add Twitter to a blank phone app

  1. V PowerApps Studio, vyberte súbor > New.In PowerApps Studio, select File > New.
  2. Na dlaždici Prázdna aplikácia vyberte možnosť Rozloženie pre telefóny.On the Blank app tile, select Phone layout.
  3. Na karte Zobraziť vyberte položku Zdroje údajov.On the View tab, select Data sources.
  4. V údajov table vyberte položku pridať zdroj údajov.In the Data pane, select Add data source.
  5. Vyberte nové pripojenie > na Twitteri > vytvoriť.Select New Connection > Twitter > Create.
  6. Zadajte svoje poverenia, vytvorte pripojenie a potom zatvorte údajov table.Enter your credentials, create the connection, and then close the Data pane.

Krok č. 2: Zhromažďovanie existujúcich tweetyStep 2: Collect existing tweets

  1. V strom zobrazenie table vyberte položku aplikácie, a potom nastavte jej OnStart nastavte na tento vzorec:In the Tree view pane, select App, and then set its OnStart property to this formula:

    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 tweetovFormula to load tweets

  2. V strom zobrazenie table vyberte ponuku pre aplikácie objekt, a potom vyberte spustiť OnStart na spustenie tohto vzorca.In the Tree view pane, select the ellipsis menu for the App object, and then select Run OnStart to run that formula.

    Spustiť vzorec pre načítanie tweetovRun formula to load tweets

    Poznámka

    LoadData a SaveData funkcie nemusí zobrazovať chyba v PowerApps Studio, pretože prehliadače nepodporujú ich.The LoadData and SaveData functions might show an error in PowerApps Studio because browsers don't support them. Však budeme vykonávajú za normálnych okolností po nasadení tejto aplikácie do zariadenia.However, they'll perform normally after you deploy this app to a device.

Tento vzorec skontroluje, či je zariadenie online:This formula checks whether the device is online:

  • Ak je zariadenie online, vzorec načíta až 10 tweety s hľadaný výraz "PowerApps" do LocalTweets kolekcie.If the device is online, the formula loads up to 10 tweets with the search term "PowerApps" into a LocalTweets collection.
  • Ak je zariadenie offline, vzorec načíta miestnu vyrovnávaciu pamäť zo súboru s názvom "LocalTweets", ak je k dispozícii.If the device is offline, the formula loads the local cache from a file called "LocalTweets" if it's available.
  1. Na vložiť kartu, vyberte možnosť galérie > prázdna s prispôsobiteľnou výškou.On the Insert tab, select Gallery > Blank flexible height.

  2. Nastaviť položky vlastnosť galérie ovládacím prvkom LocalTweets.Set the Items property of the Gallery control to LocalTweets.

  3. V šablóne galérie, pridajte tri označenie ovládacie prvky a nastavte Text vlastnosť jednotlivých štítkov na jednu z týchto hodnôt:In the gallery template, add three Label controls, and set the Text property of each label to one of these values:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso); DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Nastavenie tučného písma v posledných označenie tak, aby Galéria vyzerá ako na tomto príklade.Make the text in the last label bold so that the gallery resembles this example.

    Galéria zobrazuje ukážku tweetyGallery showing sample tweets

Krok č. 4: Zobraziť stav pripojeniaStep 4: Show connection status

  1. V galérii vloženie menovky, a potom nastavte jej farba na hodnotu Red.Under the gallery, insert a label, and then set its Color property to Red.

  2. Nastavte najnovšie Text na tento vzorec:Set the newest label's Text property to this formula:

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

Tento vzorec určuje, či je zariadenie online.This formula determines whether the device is online. Ak je, označenie zobrazí Connected; v opačnom prípade sa zobrazuje Offline.If it is, the label shows Connected; otherwise, it shows Offline.

Krok č. 5: Pridanie poľa na vytvorenie tweetovStep 5: Add a box to compose tweets

  1. V časti stav pripojenia označenia, vložiť textový vstup ovládací prvok a premenujte ho na NewTweetTextInput.Under the connection-status label, insert a Text input control, and rename it NewTweetTextInput.

  2. Nastavenie poľa textu Default na hodnotu "".Set the text-input box's Default property to "".

    Galéria počas zadávania textu políčko a informácie o staveGallery over status info and text-input box

Krok 6: Pridanie tlačidla na uverejnenie tweetuStep 6: Add a button to post the tweet

  1. Pod poľom textu pridať tlačidlo ovládací prvok a nastaviť jeho Text nastavte túto hodnotu:Under the text-input box, add a Button control, and set its Text property to this value:

    "Tweet"

  2. Vlastnosť tlačidla OnSelect na tento vzorec:Set the button's OnSelect property to this formula:

    If( Connection.Connected;
        Twitter.Tweet( ""; {tweetText: NewTweetTextInput.Text} );
        Collect( LocalTweetsToPost; {tweetText: NewTweetTextInput.Text} );;
            SaveData( LocalTweetsToPost; "LocalTweetsToPost" )
    );;
    Reset( NewTweetTextInput );;
    
  3. V OnStart vlastnosť pre aplikácie, pridať riadok na konci tohto vzorca:In the OnStart property for the App, add a line at the end of the formula:

    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
    

    Spustiť vzorec pre načítanie tweetov s zadaný riadokRun formula to load tweets with uncommented line

Tento vzorec určuje, či je zariadenie online:This formula determines whether the device is online:

  • Ak je zariadenie online, sa uverejní tweet okamžite.If the device is online, it posts the tweet immediately.
  • Ak je zariadenie offline, zachytí tweet v LocalTweetsToPost kolekcie a uloží ho do zariadenia.If the device is offline, it captures the tweet in a LocalTweetsToPost collection and saves it to the device.

Vzorec potom resetuje text v poli textu.Then the formula resets the text in the text-input box.

Krok 7: Kontrola nových tweetovStep 7: Check for new tweets

  1. Na pravej strane tlačidla, pridajte časovač ovládacieho prvku.On the right side of the button, add a Timer control.

    Finálna aplikácieFinal apps

  2. Nastavte vlastnosť časovača trvanie na hodnotu 300000.Set the timer's Duration property to 300000.

  3. Nastavte vlastnosť časovača AutoStart a opakovať vlastností true.Set the timer's AutoStart and Repeat properties to true.

  4. Nastavte vlastnosť časovača OnTimerEnd na tento vzorec:Set the timer's OnTimerEnd to this formula:

    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.This formula determines whether the device is online. Ak je, aplikácia tweetuje všetky položky v LocalTweetsToPost kolekcie a potom kolekciu vymaže.If it is, the app tweets all the items in the LocalTweetsToPost collection and then clears the collection.

Otestovanie aplikácieTest the app

  1. Otvorte aplikáciu v mobilnom zariadení, ktorý je pripojený na Internet.Open the app on a mobile device that's connected to the Internet.

    Existujúce tweety zobrazí v galérii a zobrazuje stav Connected.Existing tweets appear in the gallery, and the status shows Connected.

  2. Zariadenie odpojiť od internetu podľa zariadenia režim v lietadle povolenie a zakázanie wi-fi pripojenie na internet.Disconnect the device from the Internet by enabling the device's airplane mode and disabling wi-fi.

    Označenia stavu ukazuje, že aplikácia je Offline.The status label shows that the app is Offline.

  3. Keď je zariadenie offline, napíšte tweet, ktorý obsahuje PowerApps, a potom vyberte položku Tweet tlačidlo.While the device is offline, write a tweet that includes PowerApps, and then select the Tweet button.

    Tweet sa ukladajú lokálne v LocalTweetsToPost kolekcie.The tweet is stored locally in the LocalTweetsToPost collection.

  4. Pripojte zariadenie k internetu vypnutím zariadenia režim v lietadle a zapnutím wi-fi pripojenie na internet.Reconnect the device to the Internet by disabling the device's airplane mode and enabling wi-fi.

    V priebehu piatich minút, aplikácia uverejní tweet, ktorá sa zobrazí v galérii.Within five minutes, the app posts the tweet, which appears in the gallery.

Dúfame, že vám tento článok poskytol dobrú predstavu o tom, aké možnosti PowerApps ponúka pri vytváraní offline aplikácií.We hope this article gives you an idea of the capabilities that PowerApps has for building offline apps. Ako vždy nám môžete do fóra poslať svoje pripomienky a v blogu komunity PowerApps sa s ostatnými môžete podeliť o ukážky svojich offline aplikácií.As always, please provide feedback in our forum and share your examples of offline apps in the PowerApps community blog.