Objekt App v Power Apps

Poskytne informace o aktuálně spuštěné aplikaci a umožní ovládání jejího chování.

Popis

Jako kontrola, objekt Aplikace poskytuje vlastnosti, které identifikují, která obrazovka se zobrazuje, a které uživatele vyzývají k uložení změn, aby nedošlo ke ztrátě. Každá aplikace má objekt Aplikace.

Můžete napsat vzorce pro některé vlastnosti objektu Aplikace. V horní části podokna Stromové zobrazení vyberte objekt Aplikace, jako byste měli jakýkoli jiný ovládací prvek nebo obrazovku. Chcete-li zobrazit a upravit jednu z vlastností objektu, vyberte ji v rozevíracím seznamu vlevo od lišty vzorců.

Objekt aplikace v podokně stromového zobrazení.

Vlastnost ActiveScreen

Vlastnost ActiveScreen identifikuje zobrazovanou obrazovku.

Vlastnost vrátí objekt obrazovky, který můžete použít k odkazování na vlastnosti obrazovky nebo ke srovnání s jinou obrazovkou za účelem zjištění, která obrazovka se zobrazuje. Můžete také použít výraz App.ActiveScreen.Name pro načtení názvu zobrazené obrazovky.

Použijte funkci Back nebo Navigate pro změnu zobrazované obrazovky.

Vlatnosti ConfirmExit

Nikdo nechce přijít o neuložené změny. Použijte vlastnosti ConfirmExit a ConfirmExitMessage, které uživatele upozorní před uzavřením aplikace.

Poznámka

  • ConfirmExit nefunguje v aplikacích, které jsou zabudovány, například v Power BI a SharePoint.
  • V současné době tyto vlastnosti mohou odkazovat na ovládací prvky pouze na první obrazovce, pokud je funkce náhledu Zpožděné načtení povolena (což ve výchozím nastavení pro nové aplikace je). Pokud jsou uvedeny odkazy, Power Apps Studio nezobrazuje chybu, ale výsledná publikovaná aplikace se neotevře v Power Apps Mobile nebo prohlížeči. Aktivně pracujeme na odstranění tohoto omezení. Mezitím můžete vypnout Zpožděné zatížení v Nastavení > Připravované funkce (pod Preview).

ConfirmExit

ConfirmExit je logická vlastnost, která v případě hodnoty true otevře před zavřením aplikace dialogové okno s potvrzením. Ve výchozím nastavení je tato vlastnost false a nezobrazí se žádné dialogové okno.

Tuto vlastnost použijte k zobrazení potvrzovacího dialogového okna, pokud uživatel provedl změny, ale neukládal je. Použijte vzorec, který dokáže zkontrolovat proměnné a vlastnosti ovládání (například vlastnost Unsaved ovládacího prvku Edit form).

Potvrzovací dialogové okno se zobrazí v jakékoli situaci, kdy by mohla být data ztracena, jako v následujících příkladech:

  • Spuštění funkce Exit.
  • Pokud je aplikace spuštěna v prohlížeči:
    • Zavření prohlížeče nebo karty prohlížeče, na které je aplikace spuštěna.
    • Výběr tlačítka Zpět prohlížeče.
    • Spuštění funkce Launch s parametrem LaunchTarget o hodnotě Self.
  • Pokud je aplikace spuštěna v Power Apps Mobile (iOS nebo Android):
    • Přejetím přepnete do jiné aplikace v Power Apps Mobile.
    • Výběr tlačítka zpět na zařízení Android.
    • Spuštění funkce Launch pro spuštění další aplikace plátna.

Přesný vzhled potvrzovacího dialogového okna se může v jednotlivých zařízeních a verzích Power Apps lišit.

Diialogové okno pro potvrzení se neobjeví v Power Apps Studio.

ConfirmExitMessage

Ve výchozím nastavení se v potvrzovacím dialogovém okně zobrazuje obecná zpráva, například "Možná jste neuložili změny." v jazyku uživatele

Použijte ConfirmExitMessage pro zobrazení vlastní zprávy v dialogovém okně pro potvrzení. Pokud je tato vlastnost prázdná, použije se výchozí hodnota. Vlastní zprávy jsou zkráceny podle potřeby, aby se vešly do potvrzovacího dialogového okna, takže nastavte délku zprávy nejvýše na několik řádků.

V prohlížeči se může zobrazit potvrzovací dialogové okno s obecnou zprávou z prohlížeče.

Poznámka

Objekt aplikace má další dvě další vlastnosti OnMessage a BackEnabled, které jsou experimentální a v budoucnu budou z objektu aplikace přesunuty jinam. Doporučujeme tyto vlastnosti ve vašem produkčním prostředí nepoužívat.

Příklad

  1. Vytvořte aplikaci, která obsahuje dva ovládací prvky formuláře, AccountForm a ContactForm.

  2. Nastavte vlastnost objektu Aplikace ConfirmExit na tento výraz:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Toto dialogové okno se zobrazí, pokud uživatel změní data v obou formátech a poté se pokusí aplikaci zavřít bez uložení těchto změn.

    Dialogové okno Obecné potvrzení.

  3. Nastavte vlastnost objektu Aplikace ConfirmExitMessage na tento vzorec:

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

    Toto dialogové okno se zobrazí, pokud uživatel změní data ve formuláři aplikace a poté se pokusí aplikaci zavřít bez uložení těchto změn.

    Dialogové okno pro potvrzení dle konkrétního formuláře.

Vlastnost OnError

Poznámka

Použití OnError k provedení akce po zjištění chyby. Poskytuje globální příležitost zachytit nápis s chybou předtím, než se zobrazí koncovému uživateli. Může být také použit k zapsání chyby do protokolu pomocí funkce Trace nebo zapisovat do databáze či webové služby.

Výsledek každého vyhodnocení vzorce je kontrolován, zda v něm není chyba. Pokud chyba existuje, OnError se vyhodnotí se stejnými proměnnými rozsahu FirstError a AllErrors, které by byly přítomny, kdyby byl celý vzorec zabalen do volání funkce IfError.

Je-li OnError prázdné, zobrazí se výchozí nápis s chybou pomocí FirstError.Message chyby. Definováním vzorce OnError přepíšete toto chování a umožníte tvůrci nakládat s hlášením chyby tak, jak uzná za vhodné. Výchozí chování lze vyžádat v OnError opětovným vyhozením chyby pomocí funkce Error. To je užitečné, pokud mají být některé chyby odfiltrovány nebo zpracovány jiným způsobem, zatímco jiné mají být předány.

OnError neumí tímto způsobem nahradit chybu ve výpočtech tak, jako IfError. Když je vyvolána vlastnost OnError, chyba již nastala a již byla zpracována pomocí výpočtů vzorce. *OnError* řídí pouze hlášení chyb.

Vzorce OnError jsou vyhodnocovány souběžně a je možné, že se jejich vyhodnocení může překrývat se zpracováním jiných chyb. Pokud například nastavíte globální proměnnou na začátku vlastnosti OnError a přečtěte si ji později ve stejném vzorci, hodnota se mohla změnit. K vytvoření pojmenované hodnoty, která platí jen v rámci vzorce, použijte funkci With .

I když každá chyba je zpracována individuálně v vlastnosti OnError, výchozí nápis s chybou se nemusí zobrazit pro každou chybu jednotlivě. Abyste se vyhnuli zobrazení příliš mnoha nápisů s chybami současně, stejná chyba nespustí nový nápis, pokud byl nedávno zobrazen.

Příklad

Dejme tomu, že máme ovládací prvky Label a Slider, které jsou svázány dohromady prostřednictvím vzorce:

Label1.Text = 1/Slider1.Value

Ovládací prvek Label a Slider svázané prostřednictvím vzorce Label1.Text = 1/Slider1.Value.

Výchozí hodnota ovládacího prvku Slider je 50. Pokud je posuvník posunut na 0, Label1 nezobrazí žádnou hodnotu a zobrazí se nápis s chybou:

Ovládací prvek Slider se přesunul na 0, což vedlo k chybě dělení nulou a zobrazení nápisu s chybou.

Podívejme se podrobně na to, co se stalo:

  1. Uživatel posunul Slider doleva a vlastnost Slider1.Value se změnila na 0.
  2. Vlastnost Label1.Text byla automaticky přepočítána. Došlo k dělení nulou a generovala se chyba.
  3. V tomto vzorci není žádná funkce IfError. Vyhodnocení vzorce vrátí chybu dělení nulou.
  4. Vlastnost Label1.Text pro tuto chybu nemůže nic zobrazit, takže ukazuje a prázdný stav.
  5. Je vyvolána vlastnost OnError. Protože neexistuje žádná obslužná rutina, zobrazí se standardní nápis s informacemi o chybě.

V případě potřeby můžeme vzorec také upravit na Label1.Text = IfError( 1/Slider1.Value, 0 ). Výsledkem by nebyla žádná chyba nebo nápis s chybou. Nemůžeme změnit hodnotu chyby ve vlastnosti OnError, jelikož v tu chvíli již k chybě došlo, je pouze otázkou, jak bude hlášena.

Pokud přidáme obslužnou rutinu OnError, nic před krokem 5 neovlivní, ale může ovlivnit způsob, jakým je chyba hlášena:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

Vzorec App.OnError nastaven pro generování trasování.

Z pohledu uživatele aplikace nedojde při použití tohoto kódu k žádné chybě. Chyba však bude z FirstError přidána do trasování Monitoru, včetně zdroje informací o chybě:

Ovládací prvek Slider se přesunul na 0, což vedlo k chybě dělení nulou, ale nezobrazil se žádný nápis s chybou.

Pokud bychom chtěli mít kromě trasování také zobrazen stejný výchozí nápis s chybou, můžeme chybu znovu vyvolat pomocí funkce Error po volání Trace, stejně jako v případě, kdy volání Trace nebylo použito:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

Vlastnost OnStart

Poznámka

Použití vlastnosti OnStart může způsobit problémy s výkonem při načítání aplikace. Právě vytváříme alternativy pro dva hlavní důvody pro použití vlastnosti—ukládání dat do mezipaměti a nastavení globálních proměnných. Již jsme vytvořili alternativu pro definování první obrazovky, se kterou se má zobrazit s Navigate. V závislosti na vašem kontextu může být tato vlastnost ve výchozím nastavení zakázána. Pokud ji nevidíte a potřebujete ji použít, zkontrolujte v Rozšířených nastaveních aplikace přepínač, který ji aktivuje. Lze použít i vlastnost obrazovky OnVisible.

Vlastnost OnStart se spustí, když uživatel spustí aplikaci. Tato vlastnost se často používá k provádění následujících úkolů:

  • Načíst a ukládat data do mezipaměti kolekcí pomocí funkce Collect.
  • Nastavit globální proměnné pomocí funkce Set.

Tento vzorec je vyhodnocen před zobrazením první obrazovky. Žádná obrazovka není načtena, takže nemůžete nastavit kontextové proměnné pomocí funkce UpdateContext. Proměnné kontextu však můžete předat pomocí funkce Navigate.

Poté, co změníte vlastnost OnStart, otestujte ji umístěním kurzoru myši nad objekt Aplikace v podokně Stromové zobrazení, vyberte tři tečky (...) a poté vyberte Spustit OnStart. Na rozdíl od prvního načtení aplikace budou již existující kolekce a proměnné nastaveny. Chcete-li začít s prázdnými kolekcemi, použijte funkci ClearCollect namísto funkce Collect.

Zástupce položky aplikace pro Run OnStart

Poznámka

  • Použití funkce Navigate ve vlastnosti OnStart bylo vyřazeno. Stávající aplikace budou nadále fungovat. Po omezenou dobu ji můžete stále povolit v nastavení aplikace (k dispozici ve Vyřazeno). Nicméně pomocí Navigate tímto způsobem může dojít ke zpoždění načítání aplikace, protože to nutí systém dokončit vyhodnocení OnStart před zobrazením první obrazovky. Místo toho použijte vlastnost StartScreen pro vypočítání první zobrazené obrazovky.
  • Přepínač Vyřazeno bude vypnut u aplikací vytvořených před březnem 2021, do kterých jste přidali Navigate na OnStart od března 2021 do současnosti. Když takové aplikace upravujete v Power Apps Studio, může se zobrazit chyba. Zapněte výše uvedený přepínač Vyřazeno pro odstranění této chyby.

Vlastnost StartScreen

Poznámka

Vlastnost StartScreen se nezobrazí v seznamu vlastností, když je zapnuta vyřazená možnost Vylepšený řádek vzorců. Chcete-li vypnout možnost Vylepšený řádek vzorců, jděte do Nastavení > Připravované funkce > Vyřazené > vypněte přepínač Vylepšený řádek vzorců, takže budete moci použít vlastnost StartScreen.

Vlastnost StartScreen určuje, která obrazovka se zobrazí jako první. Vyhodnotí se jednou při načtení aplikace a vrátí objekt obrazovky k zobrazení. Ve výchozím nastavení bude tato vlastnost prázdná a první obrazovka ve stromovém zobrazení Studio se zobrazí jako první.

StartScreen je vlastnost toku dat, která nemůže obsahovat funkce chování. K dispozici jsou všechny funkce toku dat, zejména použijte tyto funkce a signály k určení, která obrazovka se má zobrazit jako první:

  • Funkce Param pro čtení parametrů používaných ke spuštění aplikace.
  • Funkce User pro čtení informací o aktuálním uživateli.
  • LookUp, Filter, CountRows, Max a další funkce, které čtou ze zdroje dat.
  • Všechna volání API prostřednictvím konektoru, ale buďte opatrní, vrátí se rychle.
  • Signály jako např. Spojení, Kompas a Aplikace.

Poznámka

Globální proměnné a kolekce, včetně těch vytvořených v OnStart, nejsou dostupné v StartScreen. Existují deklarativní alternativy, jak toho dosáhnout, které jsou na cestě. Pro zpětnou vazbu k tomuto omezení přejděte na komunitní fórum Power Apps.

Pokud StartScreen vrátí chybu, první obrazovka ve stromovém zobrazení Studio se zobrazí, jakoby StartScreen nebyla nastavena. Použijte funkci IfError, chcete-li zachytit případné chyby a přesměrovat na příslušnou chybovou obrazovku.

Poté, co změníte StartScreen ve Studiu, otestujte ji umístěním kurzoru myši nad objekt Aplikace v podokně Stromové zobrazení, vyberte tři tečky (...) a poté vyberte Přejít na StartScreen. Obrazovka se změní, jako by byla aplikace načtena.

Přechod na StartScreen

Příklady

Screen9

Označuje, že by Screen9 měl být zobrazen jako první při každém spuštění aplikace.

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

Zkontroluje, zda uživatel nastavil parametr „admin-mode“ a použije jej k rozhodnutí, zda se má nejprve zobrazit HomeScreen nebo AdminScreen.

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

Zkontroluje, zda je účastník konference zaměstnancem, a při spuštění jej přesměruje na správnou obrazovku.

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

Přesměruje aplikaci na základě volání API na ForestScreen nebo OceanScreen. Pokud API z nějakého důvodu selže, použije se ErrorScreen.

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).