Kehitä offline-tilassa toimivia kaaviosovelluksia

Mobiilikäyttäjien on usein oltava tuottavia myös silloin, kun heidän liitettävyytensä on rajallinen tai olematon. Kun kehität kaaviosovelluksen, voit toimia suorittaa seuraavat toimenpiteet:

  • Avata Power Apps Mobilen ja suorittaa sovelluksia offline-tilassa.
  • Määrittää, onko sovellus offline-tilassa, verkossa vai käytön mukaan laskutettavassa yhteydessä käyttämällä Connection-signaaliobjektia.
  • Käyttää kokoelmia ja hyödyntää funktioita LoadData ja SaveData perustietojen tallennukseen offline-tilassa.

Tässä artikkelissa on esimerkki, jossa käytetään Twitter-tietoja. LoadData- ja SaveData-funktioiden viitteessä esitetään vieläkin yksinkertaisempi esimerkki, joka ei vaadi yhteyttä.

Rajoitukset

LoadData ja SaveData muodostavat yhdessä yksinkertaisen mekanismin, joka tallentaa pieniä tietomääriä paikalliselle laitteelle. Näiden funktioiden avulla voit myös lisätä sovellukseen yksinkertaisia offline-ominaisuuksia.

Näitä toimintoja rajoittaa käytettävissä oleva sovellusmuistin määrä, koska ne toimivat muistissa olevassa kokoelmassa. Käytettävissä oleva muisti voi vaihdella laitteen, käyttöjärjestelmän, Power Apps Mobilen käyttämän muistin sekä sovelluksen monimutkaisuudet (näytöt ja ohjausobjektit) mukaan. Jos tallennat enemmän kuin muutaman megatavun tietoja, testaa sovelluksesi odotetuilla skenaarioilla laitteilla, joilla oletat sitä käytettävän. Käytettävissä oleva muisti on yleensä 30–70 megatavua.

Funktiot eivät myöskään automaattisesti ratkaise yhdistämisen ristiriitoja, kun laite tulee online-tilaan. Määritykset siitä, mitä tietoja tallennetaan ja miten yhteyden uudelleen luominen käsitellään on tekijän päätettävissä, kun hän kirjoittaa lausekkeita.

Jos haluat saada päivityksiä päivittää offline-ominaisuuksista, palaa tähän aiheeseen ja tilaa Power Apps -blogi .

Yleiskatsaus

Kun suunnittelet offline-skenaarioita, mieti ensin, miten sovellukset toimivat tietojen kanssa. Sovellukset Power Appsissa käyttävät tietoja ensisijaisesti erilaisten yhdistimien, joita ympäristöt, kuten SharePoint, Office 365 ja Common Data Service, tarjoavat. Voit myös luoda mukautettuja yhdistimiä, jotka antavat sovelluksille mahdollisuuden käyttää mitä tahansa palvelua, joka tarjoaa RESTful-päätepisteen. Tämä voi olla WWW-ohjelmointirajapinta tai palvelu, kuten Azure Functions. Nämä liittimet toimivat Internetin kautta HTTPS-käytännöllä, minkä vuoksi käyttäjillä on oltava internetyhteys, jotta he voivat käyttää palvelun tarjoamia tietoja ja ominaisuuksia.

Power Apps-sovellus yhdistimineen

Offline-tietojen käsitteleminen

Power Appsissa voit suodattaa, hakea, lajitella, koota ja käsitellä tietoja yhdenmukaisesti tietolähteestä riippumatta. Lähteet vaihtelevat sovelluksen muistissa olevista kokoelmista SharePoint-luetteloihin, SQL-tietokantoihin ja Common Data Serviceen. Tämän yhtenäisyyden vuoksi voit helposti kohdistaa sovelluksen uudelleen, jos haluat käyttää toista tietolähdettä. Tärkeintä offline-skenaarioissa on, että tämä mahdollistaa myös paikallisten kokoelmien käyttämisen tietojen hallintaan lähes kokonaan ilman muutoksia sovelluksen logiikkaan. Itse asiassa paikalliset kokoelmat ovat ensisijainen mekanismi offline-tietojen käsittelyyn.

Offline-sovelluksen rakentaminen

Jotta painopisteenä voidaan pitää sovelluskehityksen offline-ominaisuuksia, tässä aiheessa kuvataan yksinkertainen Twitteriin liittyvä skenaario. Luot sovelluksen, jonka avulla voit lukea Twitter-julkaisuja ja lähettää twiittejä ollessasi offline-tilassa. Kun sovellus siirtyy online-tilaan, sovellus julkaisee twiitit ja lataa paikalliset tiedot uudelleen.

Korkealla tasolla sovellus suorittaa seuraavat tehtävät:

  • Kun käyttäjä avaa sovelluksen:

    • Jos laite on yhteydessä verkkoon, sovellus hakee tietoja Twitter-yhdistimen kautta ja täyttää kokoelman kyseisillä tiedoilla.
    • Jos laite on offline-tilassa, sovellus lataa tiedot paikallisesta välimuistitiedostosta käyttämällä LoadDatafunktiota.
    • Käyttäjä voi lähettää twiittejä. Jos sovellus on online-tilassa, se lähettää twiitit suoraan Twitteriin ja päivittää paikallisen välimuistin.
  • Viiden minuutin välein, kun sovellus on online-tilassa:

    • Sovellus kirjaa kaikki twiitit paikallisessa välimuistiin.
    • Sovellus päivittää paikallisen välimuistin ja tallentaa sen SaveData-funktion avulla.

Vaihe 1: Lisää Twitter tyhjään puhelinsovellukseen

  1. Valitse Power Apps Studiossa Tiedosto > Uusi.
  2. Valitse Tyhjä sovellus -ruudusta Puhelinasettelu.
  3. Valitse Näytä-välilehdessä Tietolähteet.
  4. Valitse Tiedot-ruudussa Lisää tietolähde.
  5. Valitse Uusi yhteys > Twitter > Luo.
  6. Anna tunnistetietosi, muodosta yhteys ja sulje sitten Data-ruutu.

Vaihe 2: Olemassa olevien twiittien kerääminen

  1. Valitse Puunäkymä-ruudussa Sovellus ja määritä sen OnStart-ominaisuudeksi seuraava kaava:

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

    Kaava twiittien lataamista varten

  2. Valitse Puunäkymä-ruudussa Sovellus-objektin kolmen pisteen valikko ja suorita sen kaava sitten valitsemalla Run OnStart.

    Kaavan suorittaminen twiittien lataamista varten

    Huomautus

    LoadData- ja SaveData-funktiot saattavat näyttää virheen Power Apps Studiossa, koska selaimet eivät tue niitä. Ne kuitenkin toimivat normaalisti, kun olet ottanut tämän sovelluksen käyttöön laitteessa.

Tämä kaava tarkistaa, onko laite online-tilassa:

  • Jos laite on online-tilassa, kaava lataa LocalTweets-kokoelmaan enintään 10 twiittiä, jotka sisältävät hakusanan ”PowerApps”.
  • Jos laite on offline-tilassa, kaava lataa paikalliseen välimuistiin tiedoston, jonka nimi on ”LocalTweets”, jos se on saatavilla.
  1. Valitse Lisää-välilehdessä Valikoima > Tyhjä korkeudeltaan joustava.

  2. Määritä Gallery-ohjausobjektin Items-ominaisuudeksi LocalTweets.

  3. Lisää valikoimamallissa kolme Label-ohjausobjektia ja määritä kunkin selitteen Text-ominaisuudeksi yksi seuraavista arvoista:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Lihavoi viimeisen selitteen teksti siten, että valikoima muistuttaa tätä esimerkkiä.

    Esimerkki-twiittejä näyttävä valikoima

Vaihe 4: Yhteyden tilan näyttäminen

  1. Lisää valikoiman alle selite ja määritä sen Väri-ominaisuudeksi Punainen.

  2. Määritä uusimman selitteen Text-ominaisuudeksi seuraava kaava:

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

Tämä kaava määrittää, onko laite online-tilassa. Jos se on, selitteen tekstinä on Yhdistetty, muussa tapauksessa se on Offline.

Vaihe 5: Ruudun lisääminen twiittien kirjoittamista varten

  1. Lisää yhteystilaselitteen alle Text input-ohjausobjekti ja nimeä se uudelleen muotoon NewTweetTextInput.

  2. Määritä tekstinsyöttöruudun Default-ominaisuudeksi "".

    Valikoima tilatietojen ja tekstinsyöttöruudun päällä

Vaihe 6: Lisää painike, jolla twiitti lähetetään

  1. Lisää tekstinsyöttöruudun alle Button-ohjausobjekti ja määritä sen Text-ominaisuudeksi tämä arvo:

    "Tweet"

  2. Määritä painikkeen OnSelect-ominaisuudeksi seuraava kaava:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Lisää Sovelluksen OnStart-ominaisuuteen rivi kaavan loppuun:

    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
    

    Kaavan suorittaminen kommentoimattoman rivin sisältävien twiittien lataamista varten

Tämä kaava määrittää, onko laite online-tilassa:

  • Jos laite on online-tilassa, se julkaisee twiitin välittömästi.
  • Jos laite on offline-tilassa, se sieppaa twiitin LocalTweetsToPost-kokoelmaan ja tallentaa sen laitteelle.

Sitten kaava palauttaa tekstinsyöttöruudun tekstin.

Vaihe 7: uusien twiittien etsiminen

  1. Lisää Ajastin-ohjausobjekti painikkeen oikealle puolelle.

    Lopulliset sovellukset

  2. Määritä Duration-ominaisuudeksi 300000.

  3. Määritä ajastimen AutoStart- ja Repeat-ominaisuuksien arvoksi tosi.

  4. Määritä ajastimen OnTimerEnd-ominaisuudeksi tämä kaava:

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

Tämä kaava määrittää, onko laite online-tilassa. Jos se on, sovellus twiittaa kaikki LocalTweetsToPost-kokoelman kohteet ja tyhjentää kokoelman.

Sovelluksen testaus

  1. Avaa sovellus mobiililaitteessa, joka on yhteydessä internetiin.

    Aiemmin luodut twiitit näkyvät valikoimassa tilana näkyy Yhdistetty.

  2. Katkaise laitteen internetyhteys ottamalla sen lentotila käyttöön ja poistamalla Wi-Fi käytöstä.

    Tilaselite näyttää, että sovellus on Offline.

  3. Kun laite on offline-tilassa, kirjoita twiitti, joka sisältää Power Apps, ja valitse sitten Twiittaa-painike.

    Twiitti tallennetaan paikallisesti LocalTweetsToPost-kokoelmaan.

  4. Muodosta laitteella taas yhteys internetiin poistamalla lentotila käytöstä ja ottamalla Wi-Fi käyttöön.

    Sovellus julkaisee twiitin viiden minuutin kuluessa, ja twiitti tulee näkyviin valikoimassa.

Toivottavasti saat tästä artikkelista käsityksen, millaisia ominaisuuksia Power Appsissa on offline-tilassa toimivien sovellusten laatimista varten. Kuten aina, anna palautetta Microsoftin keskustelupalstalla ja jaa offline-sovellusesimerkkejäsi Power Appsin yhteisöblogissa.