Offline-tilassa toimivien pohjaan perustuvien sovellusten kehittäminen

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 Mobile -sovelluksen 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.

Huomautus

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ä.

Tässä videossa opetetaan, miten luodaan pohjaan perustuvia sovelluksia, joita voi käyttää offline-tilassa

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 Mobile -sovelluksen 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 Microsoft Dataverse, 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 muistikokoelmista Microsoft-luetteloiden avulla luotuihin luetteloihin, SQL-tietokantoihin ja Dataverseen. 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 käyttämällä SaveData-funktiota.

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

  1. Luo tyhjä pohjaan perustuva sovellus, jolla on Puhelin-asettelu.
  2. Valitse Näytä-välilehdessä Tietolähteet.
  3. Valitse Tiedot-ruudussa Lisää tietolähde.
  4. Valitse Uusi yhteys > Twitter > Luo.
  5. 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ä Valikoima-ohjausobjektin Items-ominaisuudeksi LocalTweets.

  3. Lisää valikoimamallissa kolme Selite-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 Tekstisyöte-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 Painike-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 Power Apps Mobile -sovelluksen avulla 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.

Huomautus

Voitko kertoa meille dokumentaatiota koskevan kielimäärityksesi? Vastaa lyhyeen kyselyyn. (Huomaa, että tämä kysely on englanninkielinen.)

Kyselyyn vastaaminen kestää noin seitsemän minuuttia. Henkilökohtaisia tietoja ei kerätä (tietosuojatiedot).