Desenvolupar aplicacions de llenç amb capacitat de treball fora de línia

Els usuaris mòbils sovint han de ser productius fins i tot quan tenen una connectivitat limitada o no en tenen. Quan creeu una aplicació de llenç, podeu dur a terme aquestes tasques:

  • Obriu Power Apps el mòbil i executeu aplicacions quan el dispositiu no estigui connectat a la xarxa.
  • Determineu quan una aplicació està fora de línia, en línia o en una connexió d'ús mesurat mitjançant l'objecte de senyal Connexió.
  • Sincronitza les dades entre el dispositiu i el servidor.

Si l'aplicació s'hi connecta Dataverse, l'assistència sense connexió està integrada. Power Apps us permetrà baixar dades al dispositiu i tornar a penjar els canvis Dataverse. Si l'aplicació no la utilitza Dataverse, pots utilitzar col·leccions i aprofitar les funcions LoadData i SaveData per a l'emmagatzematge bàsic sense connexió.

Nota

  • La capacitat fora de línia per a les aplicacions de llenç està disponible mentre s'executen les aplicacions mitjançant els reproductors mòbils Power Apps natius activats iOS Android i Windows.
  • Les aplicacions del llenç que s'executen als navegadors web no poden executar-se fora de línia, encara que utilitzin un navegador web en un dispositiu mòbil.
  • Les aplicacions de llenç del Teams estan limitades a 1 MB de dades mitjançant les funcions LoadData i SaveData—que són útils per a un petit nombre de cadenes de text, números i dates. L'ús d'imatges o altres mitjans és inadequat per a aquest límit. Més informació: Referència de les funcions LoadData i SaveData

Habilitar el suport fora de línia a l'aplicació de llenç basada en un Dataverse

Per a Microsoft Dataverse les aplicacions de llenç basades en ell, heu d'utilitzar la capacitat fora de línia integrada amb l'experiència fora de línia. Per obtenir més informació, vegeu Configurar el Mobile Offline per a les aplicacions de llenç i Com treballar amb aplicacions de llenç sense connexió. Amb el gir d'un commutador, l'aplicació pot treballar amb dades siguis Dataverse on siguis, amb o sense connexió de xarxa. Només cal que creeu l'aplicació amb fórmules estàndard Power Fx i la funció fora de línia gestiona tota la complexitat.

Utilitzeu LoadData i SaveData per a la resta de connectors

En aquest apartat s'inclou un exemple d'ús de les dades de Twitter. Un exemple més senzill que no requereix cap connexió s'inclou a la referència de la funció LoadData i SaveData.

Mireu aquest vídeo per obtenir informació sobre com podeu crear aplicacions de llenç habilitades sense connexió que no utilitzin Dataverse dades:

Limitacions

LoadData i SaveData es combinen per formar un mecanisme senzill per emmagatzemar petites quantitats de dades en un dispositiu local. En utilitzar aquestes funcions, podeu afegir funcionalitats simples fora de línia a l'aplicació.

Aquestes funcions estan limitades per la quantitat de memòria de l'aplicació disponible, ja que operen en una col·lecció de la memòria. La memòria disponible pot variar en funció del dispositiu, del sistema operatiu, de la memòria que utilitza l'aplicació mòbil del Power Apps i la complexitat de l'aplicació pel que fa a les pantalles i els controls. Si emmagatzemeu més d'uns quants megabytes de dades, proveu l'aplicació amb escenaris previstos als dispositius on teniu previst que s'executi. En general, tindreu entre 30 i 70 megabytes de memòria disponible.

Les funcions tampoc resolen automàticament conflictes de combinació quan un dispositiu està en línia. La configuració de les dades desades i com gestionar la reconnexió depèn del creador en escriure expressions.

Per obtenir actualitzacions de les capacitats fora de línia, torneu a aquest tema i subscriviu-vos al Bloc del Power Apps.

Informació general

Quan dissenyeu escenaris fora de línia, primer heu de tenir en compte com funcionen les vostres aplicacions. Les aplicacions del Power Apps accedeixen principalment a les dades a través d'un conjunt de connectors que proporciona la plataforma, com ara el SharePoint, l'Office 365 i el Microsoft Dataverse. També podeu crear connectors personalitzats que habilitin les aplicacions per accedir a qualsevol servei que proporcioni un extrem RESTful. Pot ser una API web o un servei, com ara l'Azure Functions. Tots aquests connectors utilitzen HTTPS per Internet, la qual cosa significa que els usuaris han d'estar en línia per accedir a les dades i a qualsevol altra capacitat que ofereixi un servei.

Aplicació del Power Apps amb connectors

Gestionar dades fora de línia

Al Power Apps, podeu filtrar, cercar, ordenar, afegir i manipular dades de manera coherent, independentment de la font de dades. Les fonts van des de col·leccions de la memòria a l'aplicació fins a llistes creades amb el Microsoft Lists, bases de dades SQL i el Dataverse. A causa d'aquesta coherència, pot ser que reorienteu fàcilment una aplicació per utilitzar una altra font de dades. Més important encara per a escenaris fora de línia, podeu utilitzar col·leccions locals per a l'administració de dades sense gairebé canvis a la lògica d'una aplicació. De fet, les col·leccions locals són el mecanisme principal per gestionar les dades fora de línia.

Crear una aplicació fora de línia

Per mantenir l'atenció en els aspectes fora de línia del desenvolupament de l'aplicació, en aquest tema s'il·lustra un escenari senzill enfocat al Twitter. Creareu una aplicació que us permet llegir publicacions del Twitter i enviar piulades fora de línia. Quan l'aplicació estigui en línia, l'aplicació publicarà les piulades i tornarà a carregar les dades locals.

En un nivell alt, l'aplicació duu a terme aquestes tasques:

  • Quan l'usuari obre l'aplicació:

    • Si el dispositiu està en línia, l'aplicació obté les dades a través del connector del Twitter i emplena una col·lecció amb les dades.
    • Si el dispositiu està fora de línia, l'aplicació carrega les dades d'un fitxer de la memòria cau local mitjançant la funció LoadData.
    • L'usuari pot enviar piulades. Si l'aplicació està en línia, publica les piulades directament al Twitter i actualitza la memòria cau local.
  • Cada cinc minuts, mentre l'aplicació està en línia:

    • L'aplicació envia les piulades a la memòria cau local.
    • L'aplicació actualitza la memòria cau local i la desa mitjançant la funció SaveData.

Pas 1: Afegir el Twitter a una aplicació de telèfon en blanc

  1. Creeu una aplicació de llenç en blanc amb una disposició de Mòbil.
  2. A la pestanya Visualització, seleccioneu Fonts de dades.
  3. A la subfinestra Dades, seleccioneu Afegeix una font de dades.
  4. Seleccioneu Afegeix una font de dades > Twitter > Crea.
  5. Introduïu les vostres credencials, creeu la connexió i, a continuació, tanqueu la subfinestra Dades.

Pas 2: Recollir piulades existents

  1. A la subfinestra Visualització d'arbre, seleccioneu Aplicació i, a continuació, definiu la propietat OnStart a aquesta fórmula:

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

    Fórmula per carregar piulades

  2. A la subfinestra Visualització d'arbre, seleccioneu el menú de punts suspensius de l'objecte Aplicació i, a continuació, seleccioneu Executa OnStart per executar la fórmula.

    Executar la fórmula per carregar piulades

    Nota

    Pot ser que les funcions LoadData i SaveData mostrin un error al Power Apps Studio perquè els navegadors no les admeten. No obstant això, actuaran amb normalitat després d'implementar aquesta aplicació en un dispositiu.

Aquesta fórmula comprova si el dispositiu està en línia:

  • Si el dispositiu està en línia, la fórmula carrega fins a 10 piulades amb el terme de cerca "PowerApps" en una col·lecció LocalTweets.
  • Si el dispositiu està fora de línia, la fórmula carrega la memòria cau local d'un fitxer anomenat "LocalTweets" si està disponible.
  1. A la pestanya Insereix, seleccioneu Galeria > Alçada flexible en blanc.

  2. Definiu la propietat Items del control Galeria com a LocalTweets.

  3. A la plantilla de la galeria, afegiu tres controls Etiqueta i definiu la propietat Text de cada etiqueta a un d'aquests valors:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Feu que el text de l'última etiqueta sigui en negreta per tal que la galeria s'assembli a aquest exemple.

    Galeria que mostra piulades d'exemple

Pas 4: Mostrar l'estat de connexió

  1. A la galeria, inseriu una etiqueta i, a continuació, definiu la propietat Color en Vermell.

  2. Definiu la propietat Text de l'etiqueta més recent en aquesta fórmula:

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

Aquesta fórmula determina si el dispositiu està en línia. Si és així, l'etiqueta mostra Connectat; si no, mostra Fora de línia.

Pas 5: Afegir un quadre per redactar piulades

  1. A l'etiqueta de l'estat de connexió, inseriu un control Entrada de text i canvieu-ne el nom per NewTweetTextInput.

  2. Definiu la propietat Default del quadre d'entrada de text com a "".

    Galeria amb la informació sobre l'estat i el quadre d'entrada de text

Pas 6: Afegir un botó per publicar la piulada

  1. Al quadre d'entrada de text, afegiu un control Botó i definiu la propietat Text en aquest valor:

    "Tweet"

  2. Definiu la propietat OnSelect del botó a aquesta fórmula:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. A la propietat OnStart de l'Aplicació, afegiu una línia al final de la fórmula:

    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
    

    Executar la fórmula per carregar les piulades amb línia sense comentaris

Aquesta fórmula determina si el dispositiu està en línia:

  • Si el dispositiu està en línia, publica la piulada immediatament.
  • Si el dispositiu està fora de línia, captura la piulada en una col·lecció LocalTweetsToPost i la desa al dispositiu.

A continuació, la fórmula restableix el text al quadre d'entrada de text.

Pas 7: Comprovar si hi ha piulades noves

  1. A la part dreta del botó, afegiu un control Temporitzador.

    Aplicacions finals

  2. Definiu la propietat Duration del temporitzador a 300000.

  3. Definiu les propietats AutoStart i Repeat a True.

  4. Definiu OnTimerEnd del temporitzador a aquesta fórmula:

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

Aquesta fórmula determina si el dispositiu està en línia. Si és així, l'aplicació piula tots els elements de la col·lecció LocalTweetsToPost i després esborra la col·lecció.

Provar l'aplicació

  1. Obriu l'aplicació amb Power Apps Mobile des d'un dispositiu mòbil connectat a Internet.

    Les piulades existents apareixen a la galeria i l'estat mostra Connectat.

  2. Per desconnectar el dispositiu d'Internet, habiliteu el mode avió del dispositiu i inhabiliteu la connexió Wi-Fi.

    L'etiqueta d'estat mostra que l'aplicació està Fora de línia.

  3. Mentre el dispositiu està fora de línia, escriviu una piulada que inclogui Power Apps i, a continuació, seleccioneu el botó Piula.

    La piulada s'emmagatzema localment a la col·lecció LocalTweetsToPost.

  4. Per tornar a connectar el dispositiu a Internet, inhabiliteu el mode avió del dispositiu i habiliteu la connexió Wi-Fi.

    En cinc minuts, l'aplicació publica la piulada, que apareix a la galeria.

Esperem que aquest article us doni una idea de les capacitats que té el Power Apps per a la creació d'aplicacions fora de línia. Com sempre, proporcioneu comentaris al nostre fòrum i compartiu exemples d'aplicacions fora de línia al bloc de la comunitat del Power Apps.

Nota

Ens podeu dir quines són les vostres preferències d'idioma per a la documentació? Responeu una breu enquesta. (tingueu en compte que l'idioma de l'enquesta és l'anglès)

Trigareu uns set minuts a completar l'enquesta. No es recopilen dades personals (declaració de privadesa).