Desenvolver aplicacións de lenzo con capacidade sen conexión

Os usuarios móbiles a miúdo necesitan ser produtivos incluso cando teñen unha conectividade limitada ou nula. Ao crear unha aplicación de lenzo, pode realizar estas tarefas:

  • Abra Power Apps Mobile e execute aplicacións sen conexión.
  • Determine cando unha aplicación está sen conexión, en liña ou nunha conexión medida usando o obxecto de sinal Conexión.
  • Use coleccións e aproveite as funcións LoadData e SaveData para o almacenamento de datos básicos cando estea sen conexión.

Nota

Este artigo inclúe un exemplo usando datos de Twitter. Un exemplo aínda máis sinxelo que non require unha conexión está incluído na referencia das funcións LoadData e SaveData.

Mire este vídeo para aprender a crear aplicacións de lenzo compatibles co modo sen conexión:

Limitacións

LoadData e SaveData combínanse para formar un mecanismo sinxelo para almacenar pequenas cantidades de datos nun dispositivo local. Ao usar estas funcións, pode engadir capacidades sinxelas sen conexión para a súa aplicación.

Estas funcións están limitadas pola cantidade de memoria dispoñible da aplicación porque funcionan nunha colección na memoria. A memoria dispoñible pode variar dependendo do dispositivo, do sistema operativo, da memoria que Power Apps Mobile usa e da complexidade da aplicación en termos de pantallas e controis. Se almacena máis dalgúns megabytes de datos, probe a aplicación cos escenarios esperados nos dispositivos nos que espera que se execute. Normalmente terá entre 30 e 70 megabytes de memoria dispoñible.

As funcións tampouco resolven automaticamente os conflitos de combinación cando un dispositivo se conecta. A configuración de que datos se gardan e de como xestionar a reconexión corresponde ao creador ao escribir as expresións.

Para as actualizacións sobre capacidades sen conexión, volva a este tema e subscríbase ao blog de Power Apps.

Visión xeral

Cando deseña escenarios sen conexión, debe considerar como funcionan as aplicacións cos datos. As aplicacións en Power Apps acceden aos datos principalmente a través dun conxunto de conectores que a plataforma proporciona, como SharePoint, Office 365 e Microsoft Dataverse. Tamén pode crear conectores personalizados que permitan ás aplicacións acceder a calquera servizo que forneza un extremo de RESTful. Isto podería ser unha API web ou un servizo como Azure Functions. Todos estes conectores usan HTTPS a través de internet, o que significa que os usuarios deben estar en liña para que poidan acceder aos datos e a calquera outra capacidade que un servizo ofreza.

Aplicación de Power Apps con conectores.

Control dos datos sen conexión

En Power Apps, pode filtrar, buscar, ordenar, agregar e manipular datos de forma coherente, independentemente da orixe de datos. As orixes van desde coleccións en memoria da aplicación ata listas creadas mediante Microsoft Lists en bases de datos SQL e Dataverse. Debido a esta coherencia, pode volver tentar captar unha aplicación para usar un orixe de datos diferente. Máis importante aínda para os escenarios sen conexión, pode usar coleccións locais para a xestión de datos sen case cambios na lóxica dunha aplicación. De feito, as coleccións locais son o mecanismo principal para tratar datos sen conexión.

Crear unha aplicación sen conexión

Para manter o foco nos aspectos sen conexión do desenvolvemento de aplicacións, este tema ilustra un sinxelo escenario centrado en Twitter. Creará unha aplicación que lle permita ler publicacións de Twitter e enviar chíos sen estar conectado. Cando a aplicación entra en liña, a aplicación publica os chíos e recarga os datos locais.

A un alto nivel, a aplicación realiza estas tarefas:

  • Cando o usuario abre a aplicación:

    • Se o dispositivo está en liña, a aplicación obtén os datos a través do conector de Twitter e enche unha colección con eses datos.
    • Se o dispositivo está sen conexión, a aplicación carga os datos dun ficheiro de caché local usando a función LoadData.
    • O usuario pode enviar chíos. Se a aplicación está en liña, publica os chíos directamente en Twitter e actualiza a caché local.
  • Cada cinco minutos mentres a aplicación está en liña:

    • A aplicación publica calquera chío na caché local.
    • A aplicación actualiza a caché local e gárdaa usando a función SaveData.

Paso 1: Engadir Twitter a unha aplicación de teléfono en branco

  1. Cree unha aplicación de lenzo en branco cun deseño de Teléfono.
  2. No separador Visualización, seleccione Orixes de datos.
  3. No panel Datos, seleccione Engadir orixe de datos.
  4. Seleccione Nova conexión > Twitter > Crear.
  5. Insira as túas credenciais, cree a conexión e logo peche o panel Datos.

Paso 2: Recompilar os chíos existentes

  1. No panel Visualización en árbore, seleccione Aplicación e logo configure a súa propiedade OnStart nesta 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 para cargar chíos.

  2. No panel Visualización en árbore, seleccione o menú de puntos suspensivos para o obxecto Aplicación e logo seleccione Executar OnStart para executar esa fórmula.

    Executar fórmula para cargar chíos.

    Nota

    As funcións LoadData e SaveData poden mostrar un erro en Power Apps Studio porque os exploradores non as admiten. Non obstante, funcionarán normalmente despois de aplicar esta aplicación nun dispositivo.

Esta fórmula comproba se o dispositivo está en liña:

  • Se o dispositivo está en liña, a fórmula carga ata 10 chíos co termo de busca "PowerApps" nunha colección LocalTweets.
  • Se o dispositivo está sen conexión, a fórmula carga a caché local dun ficheiro chamado "LocalTweets" se está dispoñible.
  1. No separador Inserir, seleccione Galería > Altura flexible en branco.

  2. Axuste a propiedade Elementos do control Galería en LocalTweets.

  3. No modelo da galería, engada tres controis de Etiqueta e configure a propiedade Texto de cada etiqueta cun destes valores:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Faga que o texto da última etiqueta apareza en negra para que a galería se asemelle a este exemplo.

    Galería que mostra exemplos de chíos.

Paso 4: Mostrar o estado de conexión

  1. Na galería, insira unha etiqueta e logo configure a súa propiedade Cor en Vermello.

  2. Axuste a propiedade Texto da etiqueta máis recente nesta fórmula:

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

Esta fórmula determina se o dispositivo está en liña. Se é así, a etiqueta mostra Conectado ; se non, mostra Sen conexión.

Paso 5: Engadir unha caixa para redactar chíos

  1. Na etiqueta de estado de conexión, insira un control Entrada de texto e cámbielle o nome a NewTweetTextInput.

  2. Configure a propiedade Valor predefinido da caixa de entrada de texto en "".

    Galería sobre información de estado e caixa de entrada de texto.

Paso 6: Engadir un botón para publicar o chío

  1. Na caixa de entrada de texto, engada un control Botón e configure a súa propiedade Texto neste valor:

    "Tweet"

  2. Axuste a propiedade OnSelect do botón nesta fórmula:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Na propiedade OnStart da Aplicación, engada unha liña ao final da 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 a fórmula para cargar chíos cunha liña non comentada.

Esta fórmula determina se o dispositivo está en liña:

  • Se o dispositivo está en liña, publica o chío inmediatamente.
  • Se o dispositivo está sen conexión, captura o chío nunha colección LocalTweetsToPost e gárdao no dispositivo.

A continuación, a fórmula restablece o texto na caixa de entrada de texto.

Paso 7: Comprobar se hai novos chíos

  1. Na parte dereita do botón, engada un control Temporizador.

    Aplicacións finais.

  2. Axuste a propiedade Duración do temporizador en 300000.

  3. Axuste as propiedades AutoStart e Repeat do temporizador en true.

  4. Estableza o valor de OnTimerEnd do temporizador nesta fórmula:

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

Esta fórmula determina se o dispositivo está en liña. Se é así, a aplicación chía todos os elementos da colección LocalTweetsToPost e, despois, elimina a colección.

Probar a aplicación

  1. Abra a aplicación usando Power Apps Mobile nun dispositivo móbil conectado a Internet.

    Os chíos existentes aparecen na galería e o estado mostra Conectado.

  2. Desconecte o dispositivo da internet activando o modo avión do dispositivo e desactivando a Wi-Fi.

    A etiqueta de estado mostra que a aplicación está Sen conexión.

  3. Mentres o dispositivo está sen conexión, escriba un chío que inclúa Power Apps e logo seleccione o botón Chío.

    O chío almacénase localmente na colección LocalTweetsToPost.

  4. Volva conectar o dispositivo á internet desactivando o modo avión do dispositivo e activando a Wi-Fi.

    Aos cinco minutos, a aplicación publica o chío, que aparece na galería.

Agardamos que este artigo lle dea unha idea das capacidades que Power Apps ten para crear aplicacións sen conexión. Como sempre, proporcione comentarios no noso foro e comparta os seus exemplos de aplicacións sen conexión no blog da comunidade de Power Apps.

Nota

Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)

Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).