Freigeben über


Entwickeln von offlinefähigen Canvas-Apps

Mobile Benutzer müssen häufig produktiv sein, auch wenn sie eingeschränkte oder keine Konnektivität haben. Wenn Sie eine Canvas-App erstellen, können Sie diese Aufgaben ausführen:

  • Öffnen Sie Power Apps Mobile, und führen Sie Apps aus, wenn das Gerät nicht mit dem Netzwerk verbunden ist.
  • Ermitteln Sie, wann eine App offline, online oder in einer getakteten Verbindung mithilfe des Connection-Signalobjekts ist.
  • Synchronisieren Sie Daten zwischen Ihrem Gerät und dem Server.

Wenn Ihre App eine Verbindung mit Dataverse herstellt, ist die Offlineunterstützung integriert. Power Apps ermöglicht Ihnen das Herunterladen von Daten auf Ihr Gerät und das Hochladen von Änderungen an Dataverse. Wenn Ihre App Dataverse nicht verwendet, können Sie Sammlungen verwenden und die Funktionen "LoadData " und " SaveData " für den einfachen Speicher verwenden, wenn sie offline sind.

Hinweis

  • Die Offlinefunktion für Canvas-Apps ist verfügbar, während die Apps mit den systemeigenen Power Apps Mobile-Playern unter iOS, Android und Windows ausgeführt werden.
  • Canvas-Apps, die in Webbrowsern ausgeführt werden, können nicht offline ausgeführt werden, auch wenn Sie einen Webbrowser auf einem mobilen Gerät verwenden.
  • Canvas-Apps in Teams sind über die Funktionen "LoadData" und "SaveData" auf 1 MB beschränkt, die für eine kleine Anzahl von Textzeichenfolgen, Zahlen und Datumsangaben nützlich sind. Die Verwendung von Bildern oder anderen Medien ist für diesen Grenzwert ungeeignet. Weitere Informationen: LoadData- und SaveData-Funktionsreferenz

Aktivieren der Offlineunterstützung in einer Dataverse-basierten Canvas-App

Für Microsoft Dataverse-basierte Canvas-Apps müssen Sie die integrierte Offline-Funktion mit der Offline-First-Erfahrung verwenden. Weitere Informationen finden Sie unter Einrichten mobiler Offlinemodus für Canvas-Apps und Offlinearbeit mit Canvas-Apps. Mit dem Kippen eines Switches kann Ihre App mit Dataverse-Daten arbeiten, unabhängig davon, wo Sie sich befinden, mit oder ohne Netzwerkverbindung. Erstellen Sie Ihre App einfach mit standardmäßigen Power Fx-Formeln, und das Offlinefeature übernimmt die gesamte Komplexität für Sie.

Verwenden von LoadData und SaveData für alle anderen Connectors

Dieser Abschnitt enthält ein Beispiel mit Twitter-Daten. Ein noch einfacheres Beispiel, für das keine Verbindung erforderlich ist, ist in der LoadData- und SaveData-Funktionsreferenz enthalten.

In diesem Video erfahren Sie, wie Sie offline aktivierte Canvas-Apps erstellen, die keine Dataverse-Daten verwenden:

Einschränkungen

LoadData und SaveData kombinieren, um einen einfachen Mechanismus zum Speichern kleiner Datenmengen auf einem lokalen Gerät zu bilden. Mithilfe dieser Funktionen können Sie Ihrer App einfache Offlinefunktionen hinzufügen.

Diese Funktionen sind durch die Menge des verfügbaren App-Speichers begrenzt, da sie in einer Speicherauflistung ausgeführt werden. Der verfügbare Arbeitsspeicher kann je nach Gerät, Betriebssystem, Speicher, der von Power Apps Mobile verwendet wird, und der Komplexität der App in Bezug auf Bildschirme und Steuerelemente variieren. Wenn Sie mehr als ein paar Megabyte Daten speichern, testen Sie Ihre App mit erwarteten Szenarien auf den Geräten, auf denen sie ausgeführt werden soll. Im Allgemeinen verfügen Sie über 30-70 MB verfügbaren Arbeitsspeicher.

Die Funktionen lösen auch keine Zusammenführungskonflikte automatisch, wenn ein Gerät online ist. Die Konfiguration, welche Daten gespeichert werden und wie die Wiederverbindung behandelt wird, liegt beim Ersteller beim Schreiben von Ausdrücken.

Nach der Verwendung von LoadData zum Auffüllen einer Auflistung kann diese Auflistung nicht zum Aktualisieren von Dataverse-Daten verwendet werden, die ein Nachschlagefeld enthalten. Dadurch wird das Nachschlagefeld nicht aktualisiert.

Um Updates für Offlinefunktionen zu erhalten, kehren Sie zu diesem Thema zurück, und abonnieren Sie den Power Apps-Blog.

Überblick

Wenn Sie Offlineszenarien entwerfen, sollten Sie zuerst überlegen, wie Ihre Apps mit Daten arbeiten. Apps in Power Apps greifen in erster Linie auf Daten über eine Reihe von Connectors zu, die von der Plattform bereitgestellt werden, z. B. SharePoint, Office 365 und Microsoft Dataverse. Sie können auch benutzerdefinierte Connectors erstellen, mit denen Apps auf jeden Dienst zugreifen können, der einen RESTful-Endpunkt bereitstellt. Dies kann eine Web-API oder ein Dienst wie Azure Functions sein. All diese Connectors verwenden HTTPS über das Internet, was bedeutet, dass Ihre Benutzer online sein müssen, um auf Daten und alle anderen Funktionen zuzugreifen, die ein Dienst anbietet.

Power Apps mit Konnektoren.

Behandeln von Offlinedaten

In Power Apps können Sie Daten unabhängig von der Datenquelle einheitlich filtern, suchen, sortieren, aggregieren und bearbeiten. Quellen reichen von In-Memory-Sammlungen in der App bis zu mit Microsoft Lists erstellten Listen, SQL-Datenbanken und Dataverse. Aufgrund dieser Konsistenz können Sie eine App einfach neu ausrichten, um eine andere Datenquelle zu verwenden. Wichtiger für Offline-Szenarien ist, dass Sie lokale Sammlungen für die Datenverwaltung verwenden können, ohne dass Änderungen an der Logik einer App vorgenommen werden. Tatsächlich sind lokale Sammlungen der primäre Mechanismus für die Verarbeitung von Offlinedaten.

Erstellen einer Offline-App

Um den Fokus auf die Offlineaspekte der App-Entwicklung zu behalten, veranschaulicht dieses Thema ein einfaches Szenario, das sich auf Twitter konzentriert. Sie erstellen eine App, mit der Sie Twitter-Beiträge lesen und Tweets übermitteln können, während Sie offline sind. Wenn die App online ist, veröffentlicht die App Tweets und lädt die lokalen Daten neu.

Auf hoher Ebene führt die App die folgenden Aufgaben aus:

  • Wenn der Benutzer die App öffnet:

    • Wenn das Gerät online ist, ruft die App Daten über den Twitter-Connector ab und füllt eine Sammlung mit diesen Daten auf.
    • Wenn das Gerät offline ist, lädt die App die Daten aus einer lokalen Cachedatei mithilfe der LoadData-Funktion .
    • Der Benutzer kann Tweets übermitteln. Wenn die App online ist, veröffentlicht sie die Tweets direkt auf Twitter und aktualisiert den lokalen Cache.
  • Alle fünf Minuten, während die App online ist:

    • Die App veröffentlicht alle Tweets im lokalen Cache.
    • Die App aktualisiert den lokalen Cache und speichert ihn mithilfe der SaveData-Funktion .

Schritt 1: Hinzufügen von Twitter zu einer leeren Smartphone-App

  1. Erstellen Sie eine leere Canvas-App mit dem Telefonlayout .
  2. Wählen Sie auf der Registerkarte " Ansicht " die Option "Datenquellen" aus.
  3. Wählen Sie im Bereich "Daten " die Option "Datenquelle hinzufügen" aus.
  4. Wählen Sie "Neue Verbindung>twitter>erstellen" aus.
  5. Geben Sie Ihre Anmeldeinformationen ein, erstellen Sie die Verbindung, und schließen Sie dann den Datenbereich .

Schritt 2: Sammeln vorhandener Tweets

  1. Wählen Sie im Bereich "Strukturansicht" die Option "App" aus, und legen Sie dann die OnStart-Eigenschaft auf diese Formel fest:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    

    Formel zum Laden von Tweets.

  2. Wählen Sie im Bereich Strukturansicht das Ellipsenmenü für das App-Objekt aus, und wählen Sie dann Formel OnStart ausführen aus, um diese Formel auszuführen.

    Führen Sie die Formel aus, um Tweets zu laden.

    Hinweis

    Die Funktionen "LoadData " und " SaveData " zeigen möglicherweise einen Fehler in Power Apps Studio an, da Browser sie nicht unterstützen. Sie funktionieren jedoch normal, nachdem Sie diese App auf einem Gerät bereitgestellt haben.

Mit dieser Formel wird überprüft, ob das Gerät online ist:

  • Wenn das Gerät online ist, lädt die Formel bis zu 10 Tweets mit dem Suchbegriff "PowerApps" in eine LocalTweets-Sammlung .
  • Wenn das Gerät offline ist, lädt die Formel den lokalen Cache aus einer Datei namens "LocalTweets", falls sie verfügbar ist.
  1. Wählen Sie auf der Registerkarte „Einfügen“ die Option „Galerie“>„Leere flexible Höhe“ aus.

  2. Legen Sie die Items-Eigenschaft des Gallery-Steuerelements auf LocalTweets.

  3. Fügen Sie in der Katalogvorlage drei Labels hinzu, und legen Sie die Text-Eigenschaft jedes Labels auf einen der folgenden Werte fest:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Formatieren Sie den Text in der letzten Beschriftung fett, damit der Katalog diesem Beispiel ähnelt.

    Katalog mit Beispiel-Tweets.

Schritt 4: Anzeigen des Verbindungsstatus

  1. Fügen Sie unter der Galerie eine Beschriftung ein, und legen Sie dann deren Color-Eigenschaft auf Rot fest.

  2. Legen Sie die Texteigenschaft der aktuellsten Beschriftung auf diese Formel fest:

    If( Connection.Connected, "Connected", "Offline" )

Mit dieser Formel wird bestimmt, ob das Gerät online ist. Wenn dies der Fall ist, zeigt die Kennzeichnung Verbunden an; andernfalls zeigt sie Offline an.

Schritt 5: Hinzufügen eines Felds zum Verfassen von Tweets

  1. Fügen Sie unter der Bezeichnung "Verbindungsstatus" ein Texteingabesteuerelement ein , und benennen Sie es in "NewTweetTextInput" um.

  2. Legen Sie die Standardeigenschaft des Texteingabefelds auf "".

    Galerie über die Statusinformation und das Texteingabefeld.

Schritt 6: Hinzufügen einer Schaltfläche zum Posten des Tweets

  1. Fügen Sie unter dem Texteingabefeld ein Schaltflächen-Steuerelement hinzu, und legen Sie dessen Texteigenschaft auf diesen Wert fest:

    "Tweet"

  2. Legen Sie die OnSelect-Eigenschaft der Schaltfläche auf diese Formel fest:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Fügen Sie in der OnStart-Eigenschaft für die App am Ende der Formel eine Zeile hinzu:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 100} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    LoadData( LocalTweetsToPost, "LocalTweetsToPost", true );  // added line
    

    Führen Sie die Formel aus, um Tweets mit nicht kommentierter Linie zu laden.

Mit dieser Formel wird bestimmt, ob das Gerät online ist:

  • Wenn das Gerät online ist, wird der Tweet sofort veröffentlicht.
  • Wenn das Gerät offline ist, erfasst es den Tweet in einer LocalTweetsToPost-Sammlung und speichert es auf dem Gerät.

Anschließend setzt die Formel den Text im Texteingabefeld zurück.

Schritt 7: Auf neue Tweets überprüfen

  1. Fügen Sie auf der rechten Seite der Schaltfläche ein Timer-Steuerelement hinzu .

    Endgültige Apps.

  2. Legen Sie die Duration-Eigenschaft des Timers auf 300000 fest.

  3. Legen Sie die AutoStart- und Wiederholungseigenschaften des Timers auf "true" fest.

  4. Legen Sie die OnTimerEnd-Eigenschaft des Timers auf diese Formel fest:

    If( Connection.Connected,
        ForAll( LocalTweetsToPost, Twitter.Tweet( "", {tweetText: tweetText} ) );
        Clear( LocalTweetsToPost );
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
        SaveData( LocalTweets, "LocalTweets" );
    )
    

Mit dieser Formel wird bestimmt, ob das Gerät online ist. Wenn dies der Grund ist, twittert die App alle Elemente in der LocalTweetsToPost-Sammlung und löscht dann die Sammlung.

Testen der App

  1. Öffnen Sie die App mit Power Apps Mobile auf einem mobilen Gerät, das mit dem Internet verbunden ist.

    Vorhandene Tweets werden im Katalog angezeigt, und der Status zeigt "Verbunden" an.

  2. Trennen Sie das Gerät vom Internet, indem Sie den Flugzeugmodus des Geräts aktivieren und wi-fideaktivieren.

    Die Statusbezeichnung zeigt an, dass die App offline ist.

  3. Während das Gerät offline ist, schreiben Sie einen Tweet, der Power Apps enthält, und wählen Sie dann die Schaltfläche "Tweet" aus.

    Der Tweet wird lokal in der LocalTweetsToPost-Sammlung gespeichert.

  4. Verbinden Sie das Gerät erneut mit dem Internet, indem Sie den Flugzeugmodus des Geräts deaktivieren und wi-fiaktivieren.

    Innerhalb von fünf Minuten veröffentlicht die App den Tweet, der im Katalog angezeigt wird.

Wir hoffen, dass Dieser Artikel Ihnen eine Vorstellung von den Funktionen gibt, die Power Apps zum Erstellen von Offline-Apps hat. Geben Sie wie immer Feedback in unserem Forum und teilen Sie Ihre Beispiele für Offline-Apps im Power Apps-Communityblog mit.