Udostępnij przez


SaveData, LoadDatai ClearData funkcje

Dotyczy: Aplikacje kanwy

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

Opis

Funkcja SaveData przechowuje kolekcję do późniejszego użycia pod nazwą.

Funkcja LoadData ponownie ładuje kolekcję według nazwy, która została wcześniej zapisana za pomocą SaveDatapolecenia . Nie można używać tej funkcji do ładowania kolekcji z innego źródła.

Funkcja ClearData czyści magazyn pod określoną nazwą lub czyści wszystkie magazyny skojarzone z aplikacją, jeśli nie podano nazwy.

Uwaga

  • Nazwa udostępniona między elementami SaveData, LoadDatai ClearData jest kluczem, a nie nazwą 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 jest ograniczony do 1 MB danych dla usługi Power Apps działających w usłudze Teams i w przeglądarce internetowej. 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ć SaveData do przechowywania poufnych danych w Internecie, ponieważ będą 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 typowy przypadek, gdy jest używany LoadData po poprzednim 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 metody LoadData , jeśli chcesz rozpocząć od pustej kolekcji.

Bezpieczeństwo danych

Należy uważnie rozważyć izolację i szyfrowanie danych przechowywanych SaveData przy użyciu usługi i zdecydować, czy są one odpowiednie dla Twoich potrzeb, zwłaszcza jeśli urządzenia są współużytkowane przez wielu użytkowników.

Dane przechowywane za pomocą SaveData usługi są odizolowane od innych aplikacji usługi Power Apps przez graczy usługi Power Apps. Dane są przechowywane na podstawie identyfikatora aplikacji, automatycznie izolując SaveData przestrzeń nazw między usługą 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. Wbudowane w aplikacji obiekty piaskownicy systemu operacyjnego są używane do SaveData magazynowania, który zwykle nie jest dostępny dla użytkownika ani ukryty.

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( Kolekcja, nazwa )
LoadData( Kolekcja, nazwa [, IgnoreNonexistentFile ])

  • Kolekcja - 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: *".?:\<>|/.
  • IgnorujNieistniejący plik— 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( [Name] )

  • Nazwa - Opcjonalne. Nazwa magazynu wcześniej zapisanego za pomocą SaveDatapolecenia . 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 późniejszego pobrania. Dane są zapisywane w hoście aplikacji pod nazwą „MyCache”.
LoadData( LocalCache, "MyCache" ) Ładuje kolekcję LocalCache z urządzenia użytkownika pod nazwą " MyCache ", wcześniej przechowywaną za pomocą wywołania metody 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. Ponieważ SaveData w usłudze Teams lub przeglądarce internetowej jest ograniczona do 1 MB danych, w tym przykładzie nie będzie działać więcej niż kilka obrazów. 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. Kontrolka obrazu w szablonie galerii powinna domyślnie mieć wartość Image , ThisItem.Picture , a kontrolki etykiety powinny domyślnie mieć 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. SaveData nie można jej LoadData używać w programie Studio ani w przeglądarce internetowej. 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 rozłączyć się z 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łuje LoadData funkcję. Nie było potrzeby wywoływania funkcji Collect ani ClearCollect przed załadowaniem danych z magazynu.

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

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

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

Więcej zaawansowanych przykładów trybu offline

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