Obiekt App w Power Apps

Dotyczy: Aplikacje kanwy

Uzyskaj informacje o aktualnie uruchomionej aplikacji i kontroluj zachowanie aplikacji.

Opis

Podobnie jak kontrolka, obiekt Aplikacji ma właściwości identyfikujące wyświetlany ekran i monit o zapisanie zmian, dzięki czemu nie utracisz ich. Każda aplikacja ma obiektu Aplikacji.

Pisanie formuł dla niektórych właściwości obiektu App . W górnej części okienka Widoku drzewa wybierz obiekt Aplikacji, tak jak każdy inny formant lub ekran. Aby wyświetlić lub edytować jedną z właściwości obiektu, wybierz ją z listy rozwijanej po lewej stronie paska formuły.

Zrzut ekranu przedstawiający obiekt Aplikacji wybrany w okienku Widok drzewa. Okienko właściwości jest widoczne.

W tym artykule opisano następujące właściwości obiektu aplikacji :

  • ActiveScreen — aktualnie wyświetlany ekran.
  • BackEnabled — sposób, w jaki aplikacja reaguje na gest powrotu urządzenia.
  • ConfirmExit i ConfirmExitMessage — ostrzegaj użytkownika przed zamknięciem aplikacji.
  • Parametry połączenia — skonfiguruj rejestrowanie usługi Application Insights.
  • Formuły — definiowanie nazwanych formuł, funkcji zdefiniowanych przez użytkownika i typów zdefiniowanych przez użytkownika.
  • OnError — obsługuje błędy globalnie.
  • OnStart — uruchamianie logiki po uruchomieniu aplikacji.
  • StartScreen — ustaw ekran wyświetlany jako pierwszy podczas ładowania aplikacji.
  • StudioVersion — zwraca wersję programu Power Apps Studio, która opublikowała aplikację.

Właściwość ActiveScreen

Właściwość ActiveScreen identyfikuje aktualnie wyświetlany ekran.

Ta właściwość zwraca obiekt ekranu. Służy do odwołowania się do właściwości bieżącego ekranu, takich jak nazwa z formułą App.ActiveScreen.Name. Możesz również porównać tę właściwość z innym obiektem ekranu, na przykład z formułą porównania App.ActiveScreen = Screen2 , aby sprawdzić, czy ekran Screen2 jest bieżącym ekranem.

Użyj funkcji Wstecz lub Navigate , aby przełączyć wyświetlany ekran.

Właściwość BackEnabled

Właściwość BackEnabled zmienia sposób, w jaki aplikacja reaguje na gest wstecz urządzenia (szybko przesuń lub użyj przycisku wstecz sprzętu na urządzeniach z systemem Android lub przesuń palcem z lewej strony na urządzeniach z systemem iOS) podczas uruchamiania w usłudze Power Apps dla urządzeń przenośnych. Po włączeniu gest wstecz urządzenia wraca do ekranu, który był ostatnio wyświetlany, co jest podobne do formuły Wstecz . Po wyłączeniu gest powrotu urządzenia przenosi użytkownika na listę aplikacji.

Właściwości ConfirmExit

Nikt nie chce utracić żadnych zmian, które nie zostały zapisane. Użyj właściwości ConfirmExit i ConfirmExitMessage , aby ostrzec użytkownika przed zamknięciem aplikacji.

Note

  • Element ConfirmExit nie działa w aplikacjach osadzonych na przykład w usługach Power BI i SharePoint.
  • Element ConfirmExit nie jest obsługiwany na stronach niestandardowych.
  • Teraz te właściwości mogą odwoływać się do kontrolek tylko na pierwszym ekranie, jeśli funkcja opóźnionego ładowania w wersji zapoznawczej jest włączona (która jest domyślnie dostępna dla nowych aplikacji). Jeśli odwołujesz się do innych ekranów, program Power Apps Studio nie wyświetla błędu, ale opublikowana aplikacja nie jest otwarta w usłudze Power Apps Mobile ani w przeglądarce. Microsoft pracuje nad zniesieniem tego ograniczenia. W międzyczasie wyłącz opóźnione ładowanie w obszarze Ustawienia>Nadchodzące funkcje (w obszarze Wersja zapoznawcza).

ConfirmExit

ConfirmExit jest właściwością logiczną, która po true otwiera okno dialogowe potwierdzenia przed zamknięciem aplikacji. Domyślnie ta właściwość ma wartość fałsz i nie jest wyświetlane okno dialogowe.

Gdy użytkownik może mieć niezapisane zmiany w aplikacji, użyj tej właściwości, aby wyświetlić okno dialogowe potwierdzenia przed zamknięciem aplikacji. Użyj formuły, która sprawdza zmienne i właściwości kontrolki (na przykład właściwość Niezapisane kontrolki Formularz edycji ).

Okno dialogowe potwierdzenia jest wyświetlane w dowolnej sytuacji, w której dane mogą zostać utracone, takie jak:

  • Uruchom funkcję Exit .
  • Jeśli aplikacja działa w przeglądarce:
    • Zamknij przeglądarkę lub kartę przeglądarki, na której działa aplikacja.
    • Wybierz przycisk Wstecz przeglądarki.
    • Uruchom funkcję Launch z elementem LaunchTarget of Self.
  • Jeśli aplikacja działa w usłudze Power Apps Mobile (iOS lub Android):
    • Szybko przesuń, aby przełączyć się do innej aplikacji w usłudze Power Apps Mobile.
    • Wybierz przycisk Wstecz na urządzeniu z systemem Android.
    • Uruchom funkcję Launch , aby uruchomić inną aplikację kanwy.

Dokładny wygląd okna dialogowego potwierdzenia może się różnić w zależności od urządzeń i wersji usługi Power Apps.

Okno dialogowe potwierdzenia nie jest wyświetlane w programie Power Apps Studio.

ConfirmExitMessage

Okno dialogowe potwierdzenia zawiera domyślnie komunikat rodzajowy, na przykład „Użytkownik może mieć niezapisane zmiany”. w języku użytkownika.

W celu udostępnienia niestandardowego komunikatu w oknie dialogowym potwierdzenia należy użyć ConfirmExitMessage. Jeśli ta właściwość nie jest pusta, zostanie użyta wartość domyślna. Niestandardowe komunikaty są obcinane zgodnie z potrzebami, aby zmieścić się w oknie dialogowym potwierdzenia, więc zachowaj komunikat do kilku wierszy najwięcej.

W przeglądarce okno dialogowe potwierdzenia może wyświetlić ogólny komunikat z przeglądarki.

Example

  1. Dla objektu Aplikacja ustaw właściwość ConfirmExit na wyrażenie:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Zostanie wyświetlone okno dialogowe, jeśli użytkownik zmieni dane w obu formularzach, a następnie spróbuje zamknąć aplikację bez zapisywania tych zmian.

    Ogólne okno dialogowe potwierdzenia.

  2. Dla objektu Aplikacja ustaw właściwość ConfirmExitMessage na formułę:

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

    W oknie dialogowym jest wyświetlany komunikat specyficzny dla formularza, gdy użytkownik zmienia dane w obu formularzach, a następnie próbuje zamknąć aplikację bez zapisywania tych zmian.

    Okno dialogowe potwierdzenia specyficzne dla formularza.

Właściwość parametrów połączenia

Użyj właściwości Parametry połączenia , aby wyeksportować dzienniki aplikacji generowane przez system do usługi Application Insights.

Aby ustawić parametry połączenia:

  1. Otwórz aplikację w celu edycji w Power Apps Studio.
  2. Wybierz obiekt Aplikacja w widoku drzewa w lewym okienku nawigacji.
  3. Wprowadź parametry połączenia w okienku właściwości.

Jeśli dane nie są wysyłane do usługi Application Insights, skontaktuj się z administratorem platformy Power Platform i sprawdź, czy usługa Application Insights jest wyłączona na poziomie dzierżawy.

Właściwość formuły

Użyj właściwości Formuły , aby zdefiniować logikę wielokrotnego użytku w aplikacji. Właściwość Formuły obsługuje trzy konstrukcje:

Nazwane formuły

Użyj nazwanych formuł we właściwości Formuły , aby zdefiniować formułę, której można użyć ponownie w całej aplikacji.

W Power Apps formuły określają wartość właściwości kontrolki. Aby na przykład ustawić spójny kolor tła w aplikacji, ustaw właściwość Fill dla każdej kontrolki na typową formułę:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

W tak wielu miejscach, w których pojawia się ta formuła, staje się żmudna i podatna na błędy, aby zaktualizować je wszystkie, jeśli potrzebna jest zmiana. Zamiast tego utwórz zmienną globalną w elemecie OnStart , aby ustawić kolor raz, a następnie ponownie użyj wartości w całej aplikacji:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Chociaż ta metoda jest lepsza, to jednak zależy od tego, czy OnStart zostanie uruchomiony przed ustaleniem wartości dla BGColor. BGColor może być również zmieniony w jakimś zakątku aplikacji, którego twórca nie jest świadomy, może to być zmiana dokonana przez kogoś innego, co może być trudne do wytropienia.

Nazwane formuły stanowią alternatywę. Tak jak zwykle piszesz właściwość-kontrolka = wyrażenie, możesz zamiast tego napisać nazwę = wyrażenie , a następnie ponownie użyć nazwy w całej aplikacji, aby zamienić wyrażenie. Zdefiniuj następujące formuły we właściwości Formuły :

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Zalety stosowania nazwanych formuł to m.in:

  • Wartość formuły jest zawsze dostępna. Nie ma zależności czasowej, nie ma OnStart, które musi być uruchomione jako pierwsze, zanim wartość zostanie ustawiona, nie ma czasu, w którym wartość formuły jest nieprawidłowa. Formuły nazwane mogą odwoływać się do siebie w dowolnej kolejności, o ile nie tworzą kolistego odwołania. Mogą one być obliczane równolegle.
  • Wartość formuły jest zawsze aktualna. Formuła może wykonywać obliczenia zależne od właściwości kontrolki lub rekordów bazy danych, a gdy one się zmieniają, wartość formuły jest automatycznie aktualizowana. Nie musisz ręcznie aktualizować wartości, tak jak w przypadku zmiennej. A formuły przeliczają się tylko wtedy, gdy są potrzebne.
  • Definicja formuły jest niezmienna. Definicja w Formułach jest jedynym źródłem prawdy i nie można zmienić jej wartości w innym miejscu aplikacji. W przypadku zmiennych niektóre kody mogą nieoczekiwanie zmienić wartość, ale ta trudna do debugowania sytuacja nie jest możliwa z nazwanymi formułami.
  • Obliczenie formuły może być odroczone. Ponieważ wartość jest niezmienna, może być zawsze obliczana w razie potrzeby, co oznacza, że nie jest obliczana, dopóki nie będzie potrzebna. Wartości formuł, które nie są używane do momentu wyświetlenia ekranu2 aplikacji, nie muszą być obliczane do momentu, gdy ekran2 jest widoczny. Wykluczenie tej pracy może poprawić czas ładowania aplikacji. Formuły nazwane są deklaratywne i dają systemowi możliwość optymalizacji sposobu i czasu ich obliczania.
  • Nazwy formuł to koncepcja Excela. Power Fx wykorzystuje koncepcje Excela tam, gdzie to możliwe, ponieważ tak wiele osób dobrze zna Excela. Formuły nazwane są odpowiednikiem nazwanych komórek i nazwanych formuł w Excelu, zarządzanych za pomocą Menedżera nazw. Obliczają one ponownie automatycznie, podobnie jak komórki arkusza kalkulacyjnego i właściwości sterowania.

Zdefiniuj nazwane formuły po drugim we właściwości Formuły , z których każda kończy się średnikiem. Typ formuły jest wnioskowany na podstawie typów elementów w formule i sposobu ich łącznego używania. Na przykład, te nazwane formuły pobierają z Dataverse przydatne informacje o aktualnym użytkowniku:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

Jeśli należy zaktualizować formułę właściwości UserTitle , możesz ją łatwo zaktualizować w tej jednej lokalizacji. Jeśli UserPhone nie jest potrzebny w aplikacji, to nie są wykonywane połączenia z tabelą Użytkownicy w Dataverse. Nie ma kary za włączenie definicji formuły, która nie jest używana.

Niektóre ograniczenia nazwanych formuł:

  • Nie mogą używać funkcji zachowania ani w inny sposób powodować efektów ubocznych w aplikacji.
  • Nie mogą tworzyć kolistego odniesienia. Posiadanie a = b; i b = a; w tej samej aplikacji jest niedozwolone.

Funkcje zdefiniowane przez użytkownika

Power Fx zawiera długą listę wbudowanych funkcji, takich jak If, Text i Set. Korzystając z funkcji zdefiniowanych przez użytkownika, możesz napisać własne funkcje, które przyjmują parametry i zwracają wartość, podobnie jak wbudowane funkcje. Możesz traktować funkcje zdefiniowane przez użytkownika jako rozszerzenie nazwanych formuł, które dodaje parametry i obsługuje formuły zachowania.

Można na przykład zdefiniować nazwaną formułę zwracającą książki beletrystyczne z biblioteki:

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

Bez parametrów należy zdefiniować oddzielne nazwane formuły dla każdego gatunku. Zamiast tego należy sparametryzować nazwę formuły:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Teraz możesz wywołać LibraryGenre( "Fiction" )metodę , LibraryGenre( "Reference" )lub filtrować w innych gatunkach przy użyciu jednej funkcji zdefiniowanej przez użytkownika.

Składnia jest następująca:

FunctionName( [ Nazwa_parametru1: ParameterType1 [ , Nazwa_parametru2: ParametrType2 ... ] ] ) : ReturnType = ;

  • FunctionName – Wymagane. Nazwa funkcji zdefiniowanej przez użytkownika.
  • Nazwy parametrów– Opcjonalne. Nazwa parametru funkcji.
  • ParameterType – opcjonalne. Nazwa typu, wbudowana nazwa typu danych, nazwa źródła danych lub typ zdefiniowany za pomocą funkcji Type .
  • ReturnType – wymagane. Typ wartości zwracanej z funkcji.
  • Formuła – Wymagane. Formuła obliczająca wartość funkcji na podstawie parametrów.

Należy wpisać każdy parametr i dane wyjściowe z funkcji zdefiniowanej przez użytkownika. W tym przykładzie SelectedGenre: Text definiuje pierwszy parametr funkcji typu Text i SelectedGenre jest nazwą parametru używanego w treści operacji Filtr. Zobacz Typy danych, aby zapoznać się z obsługiwanymi nazwami typów. Funkcja Type służy do tworzenia typu agregacji dla biblioteki, dzięki czemu można zwrócić tabelę książek z funkcji.

LibraryType Definiujesz jako tabelę w liczbie mnogiej typu rekordów. Jeśli chcesz przekazać pojedynczą książkę do funkcji, możesz wyodrębnić typ rekordu dla tej tabeli przy użyciu funkcji RecordOf:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

Dopasowanie rekordów dla parametrów funkcji jest ściślejsze niż w innych częściach Power Fx. Pola wartości rekordu muszą być odpowiednim podzbiorem definicji typu i nie mogą zawierać dodatkowych pól. Na przykład IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) wynikiem jest błąd.

Rekursja nie jest jeszcze obsługiwana przez funkcje zdefiniowane przez użytkownika.

Zachowanie funkcji zdefiniowanych przez użytkownika

Nazwane formuły i większość funkcji zdefiniowanych przez użytkownika nie obsługują funkcji zachowania z efektami ubocznymi, takimi jak Set lub Notify. Ogólnie rzecz biorąc, należy unikać aktualizowania stanu, jeśli to możliwe. Zamiast tego polegaj na wzorcach programowania funkcjonalnego i zezwalaj usłudze Power Fx na ponowne obliczanie formuł zgodnie z potrzebami. Ale są przypadki, w których jest to nieuniknione. Aby uwzględnić logikę zachowania w funkcji zdefiniowanej przez użytkownika, umieść treść w nawiasach klamrowych:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Teraz możesz wywołać metodę Spend( 12 ) , aby sprawdzić, czy masz 12 w oszczędnościach, a jeśli tak, debetowie ją przez 12 i dodaj 12 do zmiennej Wydatki. Zwracanym typem tej funkcji jest Void, ponieważ nie zwraca wartości.

Składnia funkcji zdefiniowanej przez użytkownika zachowania jest następująca:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formuła 2 ... ] };

  • FunctionName – Wymagane. Nazwa funkcji zdefiniowanej przez użytkownika.
  • Nazwy parametrów– Opcjonalne. Nazwa parametru funkcji.
  • ParameterType – opcjonalne. Nazwa typu, albo wbudowana nazwa typu danych, nazwa źródła danych, albo typ zdefiniowany za pomocą funkcji Type.
  • ReturnType – wymagane. Typ wartości zwracanej z funkcji. Użyj Void jeśli funkcja nie zwraca wartości.
  • Formuły – Wymagane. Formuła obliczająca wartość funkcji na podstawie parametrów.

Podobnie jak w przypadku wszystkich formuł Power Fx, wykonanie nie kończy się po napotkaniu błędu. Po wywołaniu funkcji Error funkcjaIf uniemożliwia wprowadzanie zmian w obszarze Oszczędności i Wydatki. Funkcja IfError może być również używana do zapobiegania dalszemu wykonywaniu po wystąpieniu błędu. Mimo że formuła zwraca Void, w przypadku wystąpienia problemu nadal może zwrócić błąd.

Typy zdefiniowane przez użytkownika

Użyj nazwanych formuł z funkcją Type , aby utworzyć typy zdefiniowane przez użytkownika. Użyj := zamiast = aby zdefiniować typ zdefiniowany przez użytkownika, na przykład Book := Type( { Title: Text, Author: Text } ). Zobacz funkcję Type, aby uzyskać więcej informacji i przykładów.

Właściwość OnError

Użyj funkcji OnError, aby podjąć akcję, gdy wystąpi błąd w dowolnym miejscu w aplikacji. Zapewnia globalną możliwość przechwycenia baneru błędu przed wyświetleniem go użytkownikowi końcowemu. Można go również użyć do rejestrowania błędu przy użyciu funkcji Trace lub zapisu w bazie danych lub usłudze internetowej.

W aplikacjach opartych na kanwie, wynik każdej oceny formuły jest sprawdzany pod kątem błędu. Jeśli wystąpi błąd, funkcja OnError jest oceniana przy użyciu tych samych zmiennych zakresu FirstError i AllErrors, których aplikacja używa, jeśli cała formuła jest owinięta w funkcji IfError.

Jeśli błąd OnError jest pusty, domyślny baner błędu zawiera komunikat FirstError.Message błędu. Zdefiniowanie formuły OnError zastępuje to zachowanie, aby twórca mógł obsługiwać raportowanie błędów zgodnie z potrzebami. Aby zażądać domyślnego zachowania w elemecie OnError, ponownie przewróć błąd, używając funkcji Error. Użyj metody ponownego stosowania, jeśli chcesz odfiltrować lub obsłużyć niektóre błędy inaczej, ale niech inni przejdą.

OnError nie może zastąpić błędu w obliczeniach tak, jak może to zrobić IfError. Jeśli błąd OnError jest wywoływany, wystąpił już błąd i jest już przetwarzany za pomocą obliczeń formuły, takich jak IfError; Funkcja OnError kontroluje tylko raportowanie błędów.

Formuły OnError są oceniane współbieżnie i możliwe, że ich ocena może nakładać się na przetwarzanie innych błędów. Jeśli na przykład ustawisz zmienną globalną w górnej części błędu OnError i odczytasz ją później w tej samej formule, wartość mogła ulec zmianie. Użyj funkcji With, aby utworzyć lokalną wartość dla formuły o nazwie.

Mimo że błąd OnError przetwarza poszczególne błędy indywidualnie, domyślny baner błędu może nie być wyświetlany osobno dla każdego błędu. Aby uniknąć wyświetlania zbyt wielu transparentów błędów w tym samym czasie, ten sam baner błędu nie jest wyświetlany ponownie, jeśli został ostatnio wyświetlony.

Example

Rozważ formant Label i kontrolkę Slider, które są powiązane ze sobą za pośrednictwem formuły:

Label1.Text = 1/Slider1.Value

Kontrolka etykiety i suwaka powiązana z formułą Label1.Text = 1/Slider1.Value.

Suwak domyślnie ma wartość 50. Jeśli suwak zostanie przeniesiony do wartości 0, etykieta Label1 nie wyświetla żadnej wartości, a zostanie wyświetlony baner błędu:

Kontrolka Slider przeniosła się do wartości 0, co spowoduje podział na wartość zera i bannera błędu.

Przyjrzyjmy się szczegółowo temu, co się stanie:

  1. Suwak zostanie przeniesiony z lewej strony, a właściwość Slider1.Value zmieni się na 0.
  2. Etykieta1.Text jest automatycznie ponownie oceniane. Dzielenie według zera występuje, generując błąd.
  3. W tej formule nie ma IfError. Błąd podziału według zera jest zwracany przez analizę formuły.
  4. Label1.Text nie może wyświetlić niczego dla tego błędu, więc pokazuje stan pusty.
  5. Wywoływane jest także OnError. Ponieważ nie ma programu obsługi, standardowy baner błędu jest wyświetlany z informacją o błędzie.

W razie potrzeby możesz również zmienić formułę na Label1.Text = IfError( 1/Slider1.Value, 0 ). Użycie błędu IfError oznacza, że nie ma baneru błędu ani błędu. Nie można zmienić wartości błędu z OnError , ponieważ błąd już wystąpił — funkcja OnError kontroluje tylko sposób raportowania.

Jeśli dodasz procedurę obsługi OnError , nie ma to wpływu na kroki przed krokiem 5, ale zmienia sposób zgłaszania błędu:

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

Formułę App.OnError ustawioną w celu wygenerowania Trace.

W przypadku tej procedury obsługi OnError użytkownik aplikacji nie widzi żadnego błędu. Ale błąd jest dodawany do śledzenia monitora, w tym źródło informacji o błędzie z FirstError:

Kontrolka Slider przeniosła się do wartości 0, co spowoduje podział na wartość zera i bannera błędu.

Jeśli chcesz również wyświetlić domyślny baner błędu wraz ze śladem, wróć ponownie błąd przy użyciu funkcji Error po wywołaniu śledzenia , tak jakby ślad nie był tam :

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

Właściwość OnStart

Note

Użycie właściwości OnStart może powodować problemy z wydajnością podczas ładowania aplikacji. Przed dodaniem logiki do metody OnStart rozważ następujące alternatywy:

  • Aby buforować dane lub konfigurować zmienne globalne, użyj nazwanej formuły we właściwości Formuły , jeśli to możliwe.
  • Aby ustawić pierwszy ekran do wyświetlenia, użyj właściwości StartScreen zamiast Navigate.
  • Aby uruchomić logikę po wyświetleniu określonego ekranu, użyj właściwości OnVisible ekranu.

W zależności od kontekstu właściwość OnStart może być domyślnie wyłączona. Jeśli go nie widzisz i musisz go użyć, sprawdź ustawienia zaawansowane aplikacji, aby go włączyć.

Gdy reguła OnStart nieblokowania jest włączona (wartość domyślna), polecenie OnStart jest uruchamiane w tym samym czasie co inne reguły aplikacji. W efekcie:

  • Zmienne zainicjowane w środowisku OnStart mogą nie być w pełni zainicjowane, gdy inne reguły aplikacji je odczytują.
  • Ekran może renderować i stać się interaktywny przed zakończeniem działania app.OnStart lub Screen.OnVisible , zwłaszcza jeśli te funkcje zajmują dużo czasu.

Właściwość OnStart jest uruchamiana, gdy użytkownik uruchamia aplikację. Użyj tej właściwości do:

  • Pobieranie i buforowanie danych w kolekcjach przy użyciu funkcji Collect .
  • Ustawienie zmiennych globalnych przy użyciu funkcji Set.

Ta formuła jest uruchamiana przed wyświetleniem pierwszego ekranu. Nie załadowano ekranu, więc nie można ustawić zmiennych kontekstu za pomocą funkcji UpdateContext. Można jednak przekazać zmienne kontekstowe za pomocą funkcji Navigate .

Po zmianie właściwości OnStart przetestuj ją, umieszczając wskaźnik myszy na obiekcie Aplikacja w okienku Widok drzewa , wybierając wielokropek (...), a następnie wybierając pozycję Uruchom w menu Start. W przeciwieństwie do tego, kiedy aplikacja ładuje się po raz pierwszy, istniejące kolekcje i zmienne są już ustawione. Aby rozpocząć pracę z pustymi kolekcjami, należy użyć funkcji ClearCollect zamiast funkcji Collect.

Menu skrótów aplikacji — element na potrzeby uruchamiania OnStart

Note

  • Funkcja Navigate we właściwości OnStart jest wycofana. Istniejące aplikacje nadal działają. Przez ograniczony czas można ją włączyć w ustawieniach aplikacji (w obszarze Wycofano). Jednak użycie funkcji Navigate w ten sposób może spowodować opóźnienia ładowania aplikacji, ponieważ wymusza uruchomienie systemu przy użyciu polecenia OnStart przed wyświetleniem pierwszego ekranu. Zamiast tego użyj właściwości StartScreen , aby ustawić pierwszy wyświetlany ekran.
  • Wycofywany przełącznik jest wyłączony dla aplikacji utworzonych przed marcem 2021 r., gdzie dodano pozycję Navigate to OnStart od marca 2021 r. do tej pory. Podczas edytowania tych aplikacji w programie Power Apps Studio jest wyświetlany błąd. Włącz wyłącznik awaryjny, aby usunąć ten błąd.

Właściwość StartScreen

Właściwość StartScreen ustawia pierwszy ekran. Power Apps ocenia tę właściwość raz, gdy aplikacja ładuje i zwraca obiekt ekranu do wyświetlenia. Domyślnie ta właściwość jest pusta, a pierwszy ekran w widoku Drzewa studio jest wyświetlany jako pierwszy.

StartScreen to właściwość przepływu danych, która nie może zawierać funkcji zachowania. Wszystkie funkcje przepływu danych są dostępne. Użyj tych funkcji i sygnałów, aby zdecydować, który ekran ma być wyświetlany jako pierwszy:

  • Funkcja Param do odczytu parametrów używanych do uruchamiania aplikacji.
  • Funkcja User do odczytu informacji o bieżącym użytkowniku.
  • LookUp, Filter, CountRows, Max i inne funkcje odczytujące ze źródła danych.
  • Wywołania interfejsu API za pośrednictwem łącznika. Upewnij się, że wywołanie jest zwracane szybko.
  • Sygnały, takie jak Połączenie, Kompas i Aplikacja.

Note

Zmienne globalne i kolekcje, w tym te utworzone w środowisku OnStart, nie są dostępne na ekranie StartScreen. Nazwane formuły są dostępne i często stanowią lepszą alternatywę dla ponownego użycia formuł w aplikacji.

Jeśli ekran StartScreen zwraca błąd, pierwszy ekran w widoku Drzewa studio jest wyświetlany tak, jakby ekran StartScreen nie został ustawiony. Użyj funkcji IfError , aby przechwycić błędy i przekierować do ekranu błędu.

Po zmianie ekranu StartScreen w programie Studio przetestuj go, umieszczając wskaźnik myszy na obiekcie Aplikacja w okienku Widok drzewa , wybierając wielokropek (...), a następnie wybierając pozycję Przejdź do ekranu StartScreen. Ekran zmienia się tak, jakby aplikacja właśnie załadowała.

Przejdź do obiektu StartScreen

Examples

Screen9

Screen9 jest wyświetlany jako pierwszy przy każdym uruchomieniu aplikacji.

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

Sprawdza, czy parametr "tryb administratora" jest ustawiony i używa go do określenia, czy ekran HomeScreen lub AdminScreen jest wyświetlany jako pierwszy.

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

Sprawdza, czy uczestnik jest członkiem personelu i kieruje ich do poprawnego ekranu podczas uruchamiania.

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

Kieruje aplikację na podstawie wywołania interfejsu API do ekranu ForestScreen albo OceanScreen. Jeśli interfejs API zakończy się niepowodzeniem, aplikacja używa ErrorScreen zamiast tego.

Właściwość StudioVersion

Użyj właściwości StudioVersion , aby wyświetlić lub zarejestrować wersję programu Power Apps Studio używaną do publikowania aplikacji. Ta właściwość pomaga podczas debugowania i sprawdzania, czy aplikacja jest ponownie publikowana przy użyciu najnowszej wersji programu Power Apps Studio.

Funkcja StudioVersion zwraca tekst. Format tego tekstu może ulec zmianie w miarę upływu czasu, więc traktuj go jako całość i nie wyodrębniaj poszczególnych części.