Objecte Aplicació al Power Apps

Proporciona informació sobre el control i l'aplicació que s'executen actualment amb el comportament de l'aplicació.

Descripció

Com un control, l'objecte Aplicació proporciona propietats que identifiquen la pantalla que es mostra i que demanen a l'usuari que desi els canvis per tal que no es perdin. Cada aplicació té un objecte Aplicació.

Podeu escriure fórmules per a algunes de les propietats de l'objecte Aplicació. A la part superior de la subfinestra Visualització d'arbre, seleccioneu l'objecte Aplicació com faríeu amb qualsevol altre control o pantalla. Visualitzeu i editeu una de les propietats de l'objecte seleccionant-lo a la llista desplegable de l'esquerra de la barra de fórmules.

L'objecte de l'aplicació a la subfinestra Visualització d'arbre

Propietat ActiveScreen

La propietat ActiveScreen identifica la pantalla que es mostra.

Aquesta propietat torna un objecte de pantalla, que podeu utilitzar per fer referència a les propietats de la pantalla o bé per comparar una altra pantalla per determinar la pantalla que es mostra. També podeu utilitzar l'expressió App.ActiveScreen.Name per recuperar el nom de la pantalla que es mostra.

Utilitzeu la funció Back o Navigate per canviar la pantalla que es mostra.

Propietats ConfirmExit

Ningú no vol perdre els canvis que no s'han desat. Utilitzeu les propietats ConfirmExit i ConfirmExitMessage per avisar l'usuari abans de tancar l'aplicació.

Nota

  • ConfirmExit no funciona en aplicacions que s'han incrustat, per exemple, al Power BI i el SharePoint.
  • Actualment, aquestes propietats poden fer referència als controls només de la primera pantalla si la característica de versió preliminar Càrrega retardada està habilitada (que és per defecte per a les noves aplicacions). Si es fan referències, el Power Apps Studio no mostra cap error, però l'aplicació publicada resultant no s'obre al Power Apps per a dispositius mòbils ni al navegador. Estem treballant activament per corregir aquesta limitació. Mentrestant, podeu desactivar la Càrrega retardada a Configuració > Properes funcions (a Previsualització).

ConfirmExit

ConfirmExit és una propietat booleana que, quan es defineix com a true, obre un quadre de diàleg de confirmació abans que l'aplicació es tanqui. Per defecte, aquesta propietat està definida com a false i no apareix cap quadre de diàleg.

Utilitzeu aquesta propietat per mostrar un quadre de diàleg de confirmació si l'usuari ha fet canvis, però no els ha desat. Utilitzeu una fórmula que pugui comprovar variables i controlar propietats (per exemple, la propietat Unsaved del control Edita el formulari).

El quadre de diàleg de confirmació apareix en qualsevol situació on es puguin perdre dades, com ara en aquests exemples:

  • Executar la funció Exit.
  • Si l'aplicació s'està executant en un navegador, seguiu aquests passos:
    • Tancar el navegador o la pestanya del navegador en què s'executa l'aplicació.
    • Seleccionar el botó Enrere del navegador.
    • Executar la funció Launch amb LaunchTarget Self.
  • Si l'aplicació s'està executant a l'aplicació mòbil del Power Apps (iOS o Android):
    • Lliscar per canviar a una altra aplicació a l'aplicació mòbil del Power Apps.
    • Seleccionar el botó Enrere en un dispositiu Android.
    • Executar la funció Launch per iniciar una altra aplicació del llenç.

L'aparença exacta del quadre de diàleg de confirmació pot variar entre els dispositius i les versions del Power Apps.

El quadre de diàleg de confirmació no apareix al Power Apps Studio.

ConfirmExitMessage

Per defecte, el quadre de diàleg de confirmació mostra un missatge genèric, com ara "Pot ser que hi hagi canvis no desats" en la llengua de l'usuari.

Utilitzeu ConfirmExitMessage per proporcionar un missatge personalitzat al quadre de diàleg de confirmació. Si aquesta propietat està en blanc, s'utilitzarà el valor per defecte. Els missatges personalitzats es trunquen segons calgui per adaptar-se al quadre de diàleg de confirmació; per tant, heu de mantenir el missatge en poques línies com a màxim.

En un navegador, pot ser que el quadre de diàleg de confirmació aparegui amb un missatge genèric del navegador.

Nota

L'objecte aplicació té dues propietats addicionals més, OnMessage i BackEnabled, que són propietats experimentals i no estaran en l'objecte aplicació en el futur. Recomanem no utilitzar aquestes propietats en el vostre entorn de producció.

Exemple

  1. Crear una aplicació que contingui dos controls de formulari, AccountForm i ContactForm.

  2. Definiu la propietat ConfirmExit de l'objecte Aplicació en aquesta expressió:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Aquest quadre de diàleg apareix si l'usuari canvia les dades d'un formulari i, a continuació, prova de tancar l'aplicació sense desar-ne els canvis.

    Quadre de diàleg de confirmació genèric

  3. Definiu la propietat ConfirmExitMessage de l'objecte Aplicació en aquesta fórmula:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    Aquest quadre de diàleg apareix si l'usuari canvia les dades del formulari Compte i, a continuació, prova de tancar l'aplicació sense desar-ne els canvis.

    Quadre de diàleg de confirmació específic del formulari

Propietat OnStart

Nota

L'ús de la propietat OnStart pot provocar problemes de rendiment en carregar una aplicació. Estem en procés de crear alternatives per les dues raons principals per les quals s'utilitza la propietat: desar dades a la memòria cau i configurar variables globals. Ja hem creat una alternativa per definir la primera pantalla que es mostra amb la funció Navigate. En funció del context, aquesta propietat es pot inhabilitar per defecte. Si no la veieu i heu d'utilitzar-la, comproveu la configuració avançada de l'aplicació per activar-la. La propietat OnVisible d'una pantalla també es pot utilitzar.

La propietat OnStart s'executa quan l'usuari inicia l'aplicació. Aquesta propietat s'utilitza sovint per fer les tasques següents:

  • Recuperar i emmagatzemar a la memòria cau dades de col·leccions mitjançant la funció Collect.
  • Configurar les variables globals mitjançant la funció Set.

Aquesta fórmula s'avalua abans que aparegui la primera pantalla. No es carrega cap pantalla i, per tant, no podeu definir variables de context amb la funció UpdateContext. No obstant això, podeu passar variables de context amb la funció Navigate.

Després de canviar la propietat OnStart, proveu-la passant el ratolí per damunt de l'objecte Aplicació a la subfinestra Visualització d'arbre, seleccioneu els punts suspensius (...) i seleccioneu Executa OnStart. A diferència de quan l'aplicació es carrega per primer cop, les col·leccions i les variables existents ja estaran definides. Per començar amb col·leccions buides, utilitzeu la funció ClearCollect en comptes de la funció Collect.

Menú de drecera de l'element de l'aplicació corresponent a Executa OnStart

Nota

  • L'ús de la funció Navigate a la propietat OnStart s'ha retirat. Les aplicacions existents continuaran funcionant. Per un temps limitat, encara la podeu habilitar a la configuració de l'aplicació (disponible a Retirat). Tanmateix, l'ús de Navigate d'aquesta manera pot provocar retards en la càrrega de l'aplicació ja que l'aplicació és l'avaluació completa d'OnStart abans de mostrar la primera pantalla. En lloc d'això, utilitzeu la propietat StartScreen per calcular la primera pantalla que es visualitzarà.
  • La commutació Retired es desactivarà per a les aplicacions creades abans del mes de març de 2021, on heu afegit Navigate a OnStart entre el març de 2021 i el moment actual. Quan editeu aquestes aplicacions al Power Apps Studio, pot ser que es produeixi un error. Canvieu la commutació Retired anterior per esborrar aquest error.

Propietat StartScreen

Nota

La propietat StartScreen no apareixerà a la llista de propietats quan s'activa la barra de fórmules millorada de l'opció retirada. Per desactivar la barra de fórmules millorada, ves a Configuració > Pròximes funcions > Retirades > desactivar l'interruptor de barra de fórmules millorat quan vulguis utilitzar la propietat StartScreen.

La propietat StartScreen determina quina pantalla es visualitzarà primer. S'avalua quan es carrega l'aplicació i retorna l'objecte de pantalla que es visualitzarà. Per defecte, aquesta propietat estarà buida i la primera pantalla de la visualització Arbre de Studio es mostra primer.

StartScreen és una propietat del flux de dades que no pot contenir funcions de comportament. Totes les funcions de flux de dades estan disponibles, en especial, utilitzeu aquestes funcions i senyals per determinar quina pantalla es mostra primer:

  • Funció Param per llegir paràmetres utilitzats per iniciar l'aplicació.
  • Funció User per llegir informació sobre l'usuari actual.
  • LookUp, Filter, CountRows, Max i altres funcions que llegeixen d'una font de dades..
  • Les crides d'API a través d'un connector, però assegureu-vos que es torni ràpidament.
  • Senyals com ara Connection, Compass i App.

Nota

Les variables i col·leccions globals, incloent-hi les creades a OnStart, no estan disponibles a StartScreen. Hi ha alternatives declaratives per fer això que s'estan creant. Per enviar els vostres comentaris sobre aquesta restricció, aneu al Fòrum de la comunitat del Power Apps.

Si StartScreen retorna un error, la primera pantalla de la visualització Arbre de Studio es mostrarà com si StartScreen no s'hagués definit. Utilitzeu la funció IfError per capturar errors i redirigir a una pantalla d'error adequada.

Després de canviar StartScreen a Studio, proveu-la passant el ratolí per damunt de l'objecte Aplicació a la subfinestra Visualització d'arbre, seleccioneu els punts suspensius (...) i seleccioneu Navega a StartScreen. La pantalla canviarà com si l'aplicació s'hagués carregat.

Navega a StartScreen

Exemples

Screen9

Indica que Screen9 s'ha de mostrar primer cada vegada que s'inicia l'aplicació.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Comprova si l'usuari defineix "admin-mode" a Param i l'utilitza per decidir si el fitxer HomeScreen o AdminScreen s'ha de visualitzar primer.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

Comprova si un assistent a una conferència és un membre del personal i els dirigeix a la pantalla correcta a l'inici.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Dirigeix l'aplicació en funció d'una crida d'API a ForestScreen o OceanScreen. Si l'API falla per alguna raó, s'utilitza ErrorScreen com a alternativa.