Funkcja SaveData, LoadData i ClearData

Dotyczy: aplikacje kanwy

Zapisuje i ponownie ładuje kolekcję z magazynu hosta aplikacji.

Uwaga

Te funkcje mogą być teraz używane podczas używania aplikacji w przeglądarce internetowej jako funkcji eksperymentalnej. Ten funkcjonalność jest wyłączona domyślnie. Aby włączyć, przejdź do opcji Ustawienia>Nadchodzące funkcje>Eksperymentalne>Włącz SaveData, LoadData, ClearData w obsłudze internetowej" i włącz przełącznik. Aby przesłać opinię na temat tej funkcji oceny, przejdź na forum społeczności Power Apps.

Opis

Funkcja SaveData służy do zapisywania kolekcji do późniejszego użycia pod daną nazwą.

Funkcja LoadData służy do ponownego ładowania kolekcji o nazwie, pod którą została wcześniej zapisana za pomocą funkcji SaveData. Nie można używać tej funkcji do ładowania kolekcji z innego źródła.

Funkcja ClearData wyczyści magazyn pod określoną nazwą lub wyczyści cały magazyn skojarzony z aplikacją, jeśli nie zostanie podana nazwa.

Uwaga

  • Nazwa udostępniona między SaveData, LoadData i ClearData to klucz, a nie nazwa pliku. Nie musi być ona złożona, ponieważ nazwy są unikatowe dla poszczególnych aplikacji i nie są zagrożone konfliktem nazw. Nazwa nie może zawierać żadnego z następujących znaków: *".?:\<>|/.
  • SaveData nie może mieć więcej niż 1 MB danych dla programu Power Apps uruchomionego w aplikacji Teams i w przeglądarce sieci Web. Nie ma stałego limitu dla aplikacji Power Apps działających w odtwarzaczu mobilnym, ale istnieją praktyczne ograniczenia omówione poniżej.
  • Nie należy używać funkcji SaveData do przechowywania poufnych danych w sieci Web, ponieważ będą one przechowywane w postaci zwykłego tekstu.

Korzystając z tych funkcji, można zwiększyć wydajność uruchamiania aplikacji, wykonując następujące czynności:

  • Buforowanie danych w formule App.OnStart przy pierwszym uruchomieniu.
  • Ponowne załadowanie lokalnej pamięci podręcznej podczas następnego uruchomienia.

Możesz także użyć tych funkcji, aby dodać proste funkcje offline do swojej aplikacji.

Tych funkcji nie można używać w przeglądarce, jeśli:

  • Tworzenie aplikacji w usłudze Power Apps Studio.

W celu przetestowania aplikacji należy uruchomić Power Apps Mobile na urządzeniu iPhone lub na urządzeniu Android.

Te funkcje są ograniczone przez ilość dostępnej pamięci aplikacji, jak są one używane w zbiorze pamięci. Dostępne pamięci mogą być różne w zależności od czynników, takich jak:

  • Urządzenie i system operacyjny.
  • Pamięci używanej przez odtwarzacz Power Apps.
  • Złożoność aplikacji z ekranami i kontrolkami.

Przetestuj swoją aplikację w oczekiwanych scenariuszach dla typu urządzeń, które aplikacja oczekuje na uruchomienie aplikacji podczas przechowywania dużych danych. Oczekujemy, że z reguły jest 30 MB do 70 MB dostępnej pamięci.

Te funkcje są zależne od kolekcji, która jest niejawnie zdefiniowana za pomocą funkcji Collect lub ClearCollect. Nie trzeba przywoływać się do Collect lub ClearCollect, aby wczytać dane do kolekcji w celu zdefiniowania. Jest to typowae podczas używania LoadData po wcześniejszym zastosowaniu SaveData. Konieczna jest obecność tych funkcji w formule, która powoduje niejawne zdefiniowanie struktury kolekcji. Aby uzyskać więcej informacji, zobacz temat Tworzenie i usuwanie zmiennych.

Załadowane dane zostaną dołączone do kolekcji. Użyj funkcji Clear przed wywołaniem LoadData, jeśli chcesz rozpocząć pracę z pustą kolekcją.

Bezpieczeństwo danych

Należy rozważyć uważne zapoznanie się z izolacją i szyfrowaniem danych przechowywanych w SaveData i podjęcie decyzji, czy będą one odpowiednie do potrzeb, zwłaszcza jeśli urządzenia są dostępne wielu użytkownikom.

Dane przechowywane w SaveData są izolowane od innych Power Apps przez graczy Power Apps. Dane są przechowywane na podstawie identyfikatora aplikacji i automatycznie wyodrębnia miejsca w nazwie SaveData między Power Apps.

System operacyjny i przeglądarka są odpowiedzialne za izolowanie danych między Power Apps a innymi aplikacjami na urządzeniu i w witrynach sieci Web. System operacyjny jest na przykład odpowiedzialny za izolowanie danych przechowywanych w Microsoft Outlook od danych przechowywanych w Power Apps oraz izolowanie ich od witryn sieci Web, takich jak Bing.com lub PowerApps.com. Obiekty piaskownicy wbudowanej aplikacji systemu operacyjnego są używane do przechowywania danych SaveData, które jest zwykle niedostępne lub ukryte przed użytkownikiem.

Podczas używania tej samej aplikacji system operacyjny i przeglądarka są również odpowiedzialne za izolowanie danych między różnymi użytkownikami systemu operacyjnego. Jeśli na przykład komputer jest współużytowany przez dwóch różnych użytkowników i są na nim używane dwa różne poświadczenia logowania systemu Windows, system operacyjny jest odpowiedzialny za wyodrębnianie danych między dwoma użytkownikami systemu Windows.

Dane mogą być izolowane między różnymi użytkownikami Power Apps, jeśli użytkownik systemu operacyjnego jest taki sam. Nie każdy gracz Power Apps tak samo je przejmuje. Jeśli na przykład jest zalogowany jako ten sam użytkownik systemu Windows, w odtwarzaczu Power Apps użytkownik wyloguje się z Power Apps i zaloguje jako inny użytkownik Power Apps. Dane przechowywane w aplikacji przed zmianą użytkownika Power Apps, mogą być dostępne dla drugiego użytkownika Power Apps w ramach tej samej aplikacji. Dane mogą zostać również usunięte i pierwszy użytkownik Power Apps może nie mieć do nich dostępu. Zachowanie jest różne między poszczególnymi graczami Power Apps.

System operacyjny może również zaszyfrować dane; Możesz też użyć narzędzia do zarządzania urządzeniem przenośnym, takiego jak Microsoft Intune. Dane przechowywane podczas używania aplikacji w przeglądarce internetowej nie są szyfrowane.

Składnia

SaveData( Collection, Name )
LoadData( Collection, Name [, IgnoreNonexistentFile ])

  • Collection - wymagane. Kolekcja do zapisania lub załadowania.
  • Nazwa - wymagane. Nazwa magazynu. Należy użyć tej samej nazwy, aby zapisać i załadować ten sam zestaw danych. Przestrzeń nazw nie jest udostępniana innym aplikacjom. Nazwy nie mogą zawierać żadnego z następujących znaków: *".?:\<>|/.
  • IgnoreNonexistentFile - opcjonalne. Wartość logiczna wskazująca czynności, które należy wykonać, jeśli plik jeszcze nie istnieje. Aby zwracany był błąd, należy użyć wartości falsz (wartość domyślna) i prawda, aby zapobiec błędom.

ClearData( [Nazwa] )

  • Nazwa (opcjonalnie). Nazwa magazynu zapisanego wcześniej przy użyciu SavedData. Jeśli nazwa nie zostanie podana, zostanie wyczyszczony cały magazyn skojarzony z aplikacją.

Przykłady

Formuła Opis Wynik
SaveData( LocalCache, "MyCache" ) Zapisz kolekcję LocalCache na urządzeniu użytkownika pod nazwą "MyCache", odpowiednią do LoadData, aby można było go pobrać później. Dane są zapisywane w hoście aplikacji pod nazwą „MyCache”.
LoadData( LocalCache, "MyCache" ) Ładuje kolekcję LocalCache z urządzenia użytkownika o nazwie "MyCache", która została uprzednio zapisana z wywołaniami SaveData. Dane są ładowane w hoście aplikacji pod nazwą „MyCache”.
ClearData( „MyCache” ) Czyści magazyn pod nazwą „MyCache”. Wszystkie dane przechowywane pod tą nazwą nie będą już dostępne za pośrednictwem LoadData. Dane są usuwane w hoście aplikacji pod nazwą „MyCache”.
ClearData() Czyści cały magazyn skojarzony z tą aplikacją. Dane przechowywane nie są zmieniane. Wszystkie dane są usuwane z hosta aplikacji.

Uproszczony przykład pracy w trybie offline

W poniższym przykładzie pokazano sposób zapisywania i przechowywania w trybie offline nazwisk i zdjęć z codziennymi elementami. Informacje te są przechowywane w lokalnym urządzeniu pamięci masowej w celu późniejszego użycia. Pozwoli to na zamknięcie aplikacji lub ponowne uruchomienie urządzenia bez utraty danych.

Uwaga

W tym przykładzie do przechwytywania obrazów jest używany formant aparatu. Jako że podczas działania w aplikacji Teams lub w przeglądarce internetowej plik SaveData nie może mieć więcej niż 1 MB danych, ten przykład nie działa z kilkoma obrazami. Ponadto, w zależności od modelu aparatu, może nie działać z jednym obrazem. Użyj urządzenia do pracy w ramach tego pełnego przykładu lub usuń formant aparatu oraz obraz tego przykładu w celu uruchomienia go w aplikacji Teams lub w przeglądarce internetowej.

  1. Utwórz pustą aplikację kanwową z układem tabletu. Aby uzyskać więcej szczegółowych informacji, zapoznaj się ze tworzeniem aplikacji z szablonu i wybierz opcję Układ tabletu w obszarze Pusta aplikacja.

  2. Dodaj kontrolkę Text input oraz kontrolkęCamera i uporządkuj je w podany sposób:

    Kontrolki wprowadzania tekstu i aparatu dodane do pustego ekranu.

  3. Dodawanie kontrolki Button.

  4. Kliknij dwukrotnie formant przycisku, aby zmienić tekst przycisku na Dodanie elementu (lub zmodyfikowania właściwości Text).

  5. W tym celu należy ustawić właściwość OnSelect kontrolki przycisku na tę formułę, która doda element do kolekcji:

    Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
    

    Dodana kontrolka przycisku z tekstem „Dodaj element” i ustawieniem OnSelect

  6. Dodawanie kolejnej kontrolki Button.

  7. Kliknij dwukrotnie formant przycisku, aby zmienić tekst przycisku na Zapisz dane (lub zmodyfikowania właściwości Text).

  8. W tym celu należy ustawić właściwość OnSelect kontrolki przycisku na tę formułę, aby zapisać naszą kolekcję na urządzeniu lokalnym:

    SaveData( MyItems, "LocalSavedItems" )
    

    Dodana kontrolka przycisku z tekstem „Zapisz dane” i ustawieniem OnSelect

    Kuszące jest przetestowanie przycisku, ponieważ nie ma on wpływu na nic. Ale zobaczysz błąd tylko podczas tworzenia w przeglądarce internetowej. Aby przetestować tę formułę, należy najpierw zapisać aplikację i otworzyć ją na urządzeniu przed wykonaniem następnych kroków:

  9. Dodawanie trzeciej kontrolki Button.

  10. Kliknij dwukrotnie formant przycisku, aby zmienić tekst przycisku na Ładuj dane (lub zmodyfikowania właściwości Text).

  11. W tym celu należy ustawić właściwość OnSelect kontrolki przycisku na tę formułę, aby załadować naszą kolekcję z urządzenia lokalnego:

    LoadData( MyItems, "LocalSavedItems" )
    

    Dodana kontrolka przycisku z tekstem „Ładuj dane” i ustawieniem OnSelect

  12. W tym celu należy dodać kontrolkę Gallery z układem pionowym zawierającym obszary obrazów i tekstowe:

    Wybór odmiany galerii, zaznaczony „Pionowy” z obszarami obrazu i tekstu

  13. Po wyświetleniu monitu wybierz kolekcję MyItems jako źródło danych tej galerii. To ustawi właściwość Items kontrolki Gallery obrazów na wartość:

    Galeria wyboru źródło danych. Formant obrazu w szablonie galerii powinien domyślnie określać jego właściwość Image na wartość ThisItem.Picture i etykieta powinny domyślną właściwości Text na wartość ThisItem.Item. Jeśli po dodaniu elementów do poniższych kroków nie widzisz żadnych uwag w galerii, zaznacz te formuły.

  14. Ustaw kontrolkę na prawo od innych kontrolek:

    Galeria, której położenie znajduje się po prawej stronie ekranu.

  15. Zapisywanie aplikacji. Podczas pierwszego zapisywania nie ma potrzeby opublikowania. Jeśli nie jest to pierwszy raz, opublikuj aplikację po zapisaniu.

  16. Otwórz aplikację na urządzeniu, takim jak telefon lub tablet. W Studio lub w przeglądarce sieci Web nie można używać SaveData i LoadData. Odśwież listę aplikacji, jeśli nie widzisz jej od razu, może upłynąć kilka sekund, zanim aplikacja pojawi się na Twoim urządzeniu. Wylogowywanie się i logowanie się na konto może również pomóc.

    Aplikacja jest uruchomiona bez dodano elementów. Po pobraniu aplikacji możesz odłączyć się od sieci i uruchomić aplikację w trybie offline.

  17. Wprowadź nazwę i zrób zdjęcie elementu.

  18. Kliknij przycisk Dodaj element. Powtarzaj dodawanie elementów na kilka razy, aby załadować kolekcję.

    Aplikacja uruchomiona z trzema dodanymi elementami.

  19. Wybierz przycisk Zapisz dane. Spowoduje to zapisanie danych w kolekcji na urządzeniu lokalnym.

  20. Zamknij aplikację. Twoja kolekcja w pamięci zostanie utracona, w tym wszystkie nazwy przedmiotów i zdjęcia, ale nadal będą one dostępne w pamięci urządzenia.

  21. Ponowne uruchamianie aplikacji. Kolekcja znajdująca się w pamięci będzie ponownie widoczna w galerii jako pusta.

    Aplikacja znów zostanie uruchomiona bez dodanych elementów.

  22. Wybierz przycisk Ładuj dane. Kolekcja zostanie ponownie wypełniona z zapisanych danych na urządzeniu, a elementy zostaną powielone w galerii. Kolekcja była pusta, zanim ten przycisk wywołał funkcję LoadData; nie było potrzeby wywoływać Collect lub ClearCollect przed załadowaniem danych z pamięci.

    Aplikacja uruchomiona z trzema elementami przywrócona po wywołaniu funkcji LoadData.

  23. Wybierz znowu przycisk Ładuj dane. Zapisane dane zostaną dołączone do końca kolekcji, a w galerii zostanie wyowietlony pasek przewijania. Aby zamiast dołączać zastępować, należy najpierw użyć funkcji Clear, aby wyczyścić kolekcję przed wywołaniem funkcji LoadData.

    Aplikacja uruchomiona z sześcioma elementami przywrócona po wywołaniu funkcji LoadData dwukrotnie.

Więcej zaawansowanych przykładów trybu offline

Aby zapoznać się z szczegółowymi przykładami, zobacz artykuł dotyczący prostych funkcji trybu offline.