Ανάπτυξη εφαρμογών καμβά με δυνατότητα χρήσης εκτός σύνδεσης

Οι χρήστες κινητών συσκευών πρέπει συχνά να είναι παραγωγικοί ακόμα και όταν έχουν περιορισμένη ή καθόλου συνδεσιμότητα. Κατά τη δημιουργία μιας εφαρμογής καμβά, μπορείτε να εκτελέσετε αυτές τις εργασίες:

  • Ανοίξτε το Power Apps Mobile και εκτελέστε εφαρμογές όταν η συσκευή δεν είναι συνδεδεμένη στο δίκτυο.
  • Να προσδιορίζετε πότε μια εφαρμογή είναι εκτός σύνδεσης, εντός σύνδεσης ή σε σύνδεση ογκοχρέωσης χρησιμοποιώντας το αντικείμενο σήματος Connection.
  • Συγχρονίστε τα δεδομένα μεταξύ της συσκευής και του διακομιστή.

Αν η εφαρμογή σας συνδεθεί στο Dataverse, η υποστήριξη χωρίς σύνδεση είναι ενσωματωμένη. Το Power Apps θα σας επιτρέπει να κάνετε λήψη δεδομένων στη συσκευή σας και να αποστέλλετε αλλαγές ξανά στο Dataverse. Εάν η εφαρμογή σας δεν χρησιμοποιεί το Dataverse, μπορείτε να χρησιμοποιήσετε συλλογές και να αξιοποιήσετε τις συναρτήσεις LoadData και SaveData για βασική αποθήκευση όταν είστε εκτός σύνδεσης.

Σημείωση

  • Η δυνατότητα εκτός σύνδεσης για εφαρμογές καμβά είναι διαθέσιμη κατά την εκτέλεση των εφαρμογών που χρησιμοποιούν εγγενείς παίκτες Power Apps Mobile σε iOS, Android και Windows.
  • Οι εφαρμογές καμβά που εκτελούνται σε προγράμματα περιήγησης web δεν μπορούν να εκτελούνται χωρίς σύνδεση, ακόμα και όταν χρησιμοποιείτε ένα πρόγραμμα περιήγησης web σε κινητή συσκευή.
  • Οι εφαρμογές καμβά στο Teams περιορίζονται σε 1 MB δεδομένων μέσω των συναρτήσεων LoadData και SaveData—χρήσιμο για έναν μικρό αριθμό συμβολοσειρών κειμένου, αριθμών και ημερομηνιών. Η χρήση εικόνων ή άλλων μέσων είναι ακατάλληλη για αυτό το όριο. Περισσότερες πληροφορίες: αναφορά συνάρτησης LoadData και SaveData

Ενεργοποίηση υποστήριξης χωρίς σύνδεση σε μια εφαρμογή καμβά που βασίζεται σε Dataverse

Για εφαρμογές καμβά βάσει Microsoft Dataverse, πρέπει να χρησιμοποιήσετε τη δυνατότητα χωρίς σύνδεση που είναι ενσωματωμένη στην εμπειρία χωρίς σύνδεση πρώτα. Για περισσότερες πληροφορίες, δείτε Ρύθμιση του Mobile Offline για εφαρμογές καμβά και Εργασία με εφαρμογές καμβά χωρίς σύνδεση. Με την εναλλαγή ενός διακόπτη, η εφαρμογή σας μπορεί να λειτουργεί με δεδομένα Dataverse όπου κι αν είστε, με ή χωρίς σύνδεση δικτύου. Απλώς δημιουργήστε την εφαρμογή σας με τυπικές φόρμουλες Power Fx και η δυνατότητα εργασίας χωρίς σύνδεση διαχειρίζεται όλη την πολυπλοκότητα για εσάς.

Χρήση των LoadData και SaveData για όλες τις άλλες συνδέσεις

Αυτή η ενότητα περιλαμβάνει ένα παράδειγμα χρησιμοποιώντας δεδομένα από το Twitter. Ένα ακόμα πιο απλό παράδειγμα που δεν απαιτεί σύνδεση περιλαμβάνεται στην αναφορά συναρτήσεων LoadData και SaveData.

Παρακολουθήστε αυτό το βίντεο για να μάθετε πώς να δημιουργείτε εφαρμογές καμβά που δεν χρησιμοποιούν δεδομένα Dataverse:

Περιορισμοί

Τα LoadData και SaveData συνδυάζονται για να διαμορφώσουν έναν απλό μηχανισμό αποθήκευσης μικρών ποσοτήτων δεδομένων σε μια τοπική συσκευή. Χρησιμοποιώντας αυτές τις συναρτήσεις, μπορείτε να προσθέσετε απλές δυνατότητες εργασίας χωρίς σύνδεση στην εφαρμογή σας.

Αυτές οι συναρτήσεις περιορίζονται από το μέγεθος της διαθέσιμης μνήμης εφαρμογών, καθώς λειτουργούν σε μια συλλογή στη μνήμη. Η διαθέσιμη μνήμη μπορεί να ποικίλλει ανάλογα με τη συσκευή, το λειτουργικό σύστημα, τη μνήμη που χρησιμοποιεί το Power Apps Mobile και την πολυπλοκότητα της εφαρμογής από την άποψη των οθονών και των στοιχείων ελέγχου. Εάν αποθηκεύσετε περισσότερα από μερικά megabyte δεδομένων, δοκιμάστε την εφαρμογή σας με τα αναμενόμενα σενάρια στις συσκευές στις οποίες αναμένετε να εκτελεστεί. Θα έχετε γενικά 30-70 megabyte διαθέσιμης μνήμης.

Επίσης, οι συναρτήσεις δεν επιλύουν αυτόματα τις διενέξεις συγχώνευσης όταν μια συσκευή συνδέεται ξανά. Η ρύθμιση παραμέτρων σχετικά με τα δεδομένα που αποθηκεύονται και ο τρόπος χειρισμού της επανασύνδεσης εξαρτώνται από το τι επέλεξε ο δημιουργός όταν συνέταξε τις παραστάσεις.

Για ενημερώσεις σχετικά με τις δυνατότητες χωρίς σύνδεση, επιστρέψτε σε αυτό το θέμα και εγγραφείτε στο ιστολόγιο του Power Apps.

Επισκόπηση

Όταν σχεδιάζετε σενάρια χωρίς σύνδεση, θα πρέπει πρώτα να εξετάσετε τον τρόπο λειτουργίας των εφαρμογών σας με δεδομένα. Οι εφαρμογές στο Power Apps έχουν πρόσβαση κυρίως σε δεδομένα μέσω ενός συνόλου συνδέσεων που παρέχει η πλατφόρμα, για παράδειγμα, SharePoint, Office 365 και Microsoft Dataverse. Μπορείτε επίσης να δημιουργήσετε προσαρμοσμένες συνδέσεις που επιτρέπουν σε εφαρμογές την πρόσβαση σε οποιαδήποτε υπηρεσία παρέχει ένα τελικό σημείο RESTful. Αυτό μπορεί να είναι ένα Web API ή μια υπηρεσία όπως το Azure Functions. Όλες αυτές οι συνδέσεις χρησιμοποιούν HTTPS μέσω Internet, το οποίο σημαίνει ότι οι χρήστες σας πρέπει να είναι συνδεδεμένοι για να έχουν πρόσβαση σε δεδομένα και οποιεσδήποτε άλλες δυνατότητες προσφέρει μια υπηρεσία.

Εφαρμογή Power Apps με συνδέσεις.

Διαχείριση δεδομένων χωρίς σύνδεση

Στο Power Apps, μπορείτε να φιλτράρετε, να αναζητήσετε, να ταξινομήσετε, να αθροίσετε και να διαχειριστείτε δεδομένα με συνεπή τρόπο, ανεξάρτητα από την προέλευση δεδομένων. Οι προελεύσεις προέρχονται από συλλογές στη μνήμη της εφαρμογής έως λίστες που δημιουργήθηκαν με χρήση λιστών Microsoft σε βάσεις δεδομένων SQL και Dataverse. Λόγω αυτής της συνέπειας, μπορείτε εύκολα να επαναστοχεύσετε μια εφαρμογή ώστε να χρησιμοποιεί μια διαφορετική προέλευση δεδομένων. Το σημαντικότερο για τα σενάρια εκτός σύνδεσης, μπορείτε να χρησιμοποιείτε τοπικές συλλογές για διαχείριση δεδομένων με σχεδόν μηδέν αλλαγές στη λογική μιας εφαρμογής. Στην πραγματικότητα, οι τοπικές συλλογές είναι ο κύριος μηχανισμός διαχείρισης δεδομένων εκτός σύνδεσης.

Δημιουργία μιας εφαρμογής εκτός σύνδεσης

Για να παραμείνετε εστιασμένοι στα θέματα της ανάπτυξης εφαρμογών εκτός σύνδεσης, αυτό το θέμα παρουσιάζει ένα απλό σενάριο που εστιάζει στο Twitter. Θα δημιουργήσετε μια εφαρμογή που σας επιτρέπει να διαβάζετε δημοσιεύσεις στο Twitter και να υποβάλλετε tweet ενώ είστε εκτός σύνδεσης. Όταν η εφαρμογή συνδεθεί, δημοσιεύει τα tweet και επαναφορτώνει τα τοπικά δεδομένα.

Σε υψηλό επίπεδο, η εφαρμογή εκτελεί αυτές τις εργασίες:

  • Όταν ο χρήστης ανοίγει την εφαρμογή:

    • Εάν η συσκευή είναι εντός σύνδεσης, η εφαρμογή λαμβάνει δεδομένα μέσω σύνδεσης Twitter και συμπληρώνει μια συλλογή με αυτά τα δεδομένα.
    • Εάν η συσκευή βρίσκεται εκτός σύνδεσης, η εφαρμογή φορτώνει τα δεδομένα από ένα αρχείο τοπικής μνήμης cache χρησιμοποιώντας τη συνάρτηση LoadData.
    • Ο χρήστης μπορεί να υποβάλει tweet. Εάν η εφαρμογή είναι σε σύνδεση, καταχωρεί τα tweet απευθείας στο Twitter και ανανεώνει την τοπική μνήμη cache.
  • Κάθε πέντε λεπτά, ενώ η εφαρμογή είναι σε σύνδεση:

    • Η εφαρμογή καταχωρεί τυχόν tweet στην τοπική μνήμη cache.
    • Η εφαρμογή ανανεώνει την τοπική μνήμη cache και την αποθηκεύει χρησιμοποιώντας τη συνάρτηση SaveData.

Βήμα 1: Προσθήκη Twitter σε μια κενή εφαρμογή τηλεφώνου

  1. Δημιουργήστε μια κενή εφαρμογή καμβά με διάταξη τηλεφώνου.
  2. Στην καρτέλα Προβολή, επιλέξτε Προελεύσεις δεδομένων.
  3. Στο τμήμα παραθύρου Δεδομένα, επιλέξτε Προσθήκη προέλευσης δεδομένων.
  4. Επιλέξτε Νέα σύνδεση > Twitter > Δημιουργία.
  5. Εισαγάγετε τα διαπιστευτήριά σας, δημιουργήστε τη σύνδεση και, στη συνέχεια, κλείστε το τμήμα παραθύρου Δεδομένα.

Βήμα 2: Συλλογή υφιστάμενων tweet

  1. Στο τμήμα παραθύρου Προβολή δέντρου, επιλέξτε Εφαρμογή, μετά ορίστε την ιδιότητα OnStart σύμφωνα με αυτόν τον τύπο:

    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" );
    

    Τύπος φόρτωσης tweet.

  2. Στο τμήμα παραθύρου Προβολή δέντρου, επιλέξτε το μενού αποσιωπητικών για το αντικείμενο Εφαρμογή και μετά επιλέξτε Run OnStart για να εκτελεστεί αυτός ο τύπος.

    Εκτέλεση τύπου για φόρτωση tweet.

    Σημείωση

    Οι συναρτήσεις LoadData και SaveData μπορεί να εμφανίζουν σφάλμα στο Power Apps Studio επειδή τα προγράμματα περιήγησης δεν τις υποστηρίζουν. Ωστόσο, θα εκτελούνται κανονικά μετά την ανάπτυξη αυτής της εφαρμογής σε μια συσκευή.

Αυτός ο τύπος ελέγχει εάν η συσκευή είναι συνδεδεμένη:

  • Εάν η συσκευή είναι συνδεδεμένη, ο τυπος φορτώνει έως και 10 tweet με τον όρο αναζήτησης "PowerApps" σε μια συλλογή LocalTweets.
  • Εάν η συσκευή είναι εκτός σύνδεσης, ο τύπος φορτώνει το τοπικό cache από ένα αρχείο με την ονομασία "LocalTweets", εάν υπάρχει.
  1. Στην καρτέλα Εισαγωγή, επιλέξτε Συλλογή > Κενό ευέλικτο ύψος.

  2. Ορίστε την ιδιότητα Items της Συλλογής σε LocalTweets.

  3. Στο πρότυπο συλλογής, προσθέστε τρία στοιχεία ελέγου ετικέτας και ορίστε την ιδιότητα Text κάθε ετικέτας σε μία από αυτές τις τιμές:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Δημιουργήστε ένα κείμενο στην τελευταία ετικέτα με έντονη γραφή, έτσι ώστε η συλλογή να μοιάζει με αυτό το παράδειγμα.

    Συλλογή που εμφανίζει δείγματα tweets.

Βήμα 4: Εμφάνιση κατάστασης σύνδεσης

  1. Κάτω από τη συλλογή, εισαγάγετε μια ετικέτα και, στη συνέχεια, ορίστε την ιδιότητα Color σε Red.

  2. Ορίστε την ιδιότητας της πιο καινούριας ετικέτας Text σε αυτόν τον τύπο:

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

Αυτός ο τύπος προσδιορίζει εάν η συσκευή είναι συνδεδεμένη. Εάν είναι, η ετικέτα εμφανίζει Connected, αλλιώς εμφανίζει Offline.

Βήμα 5: Προσθήκη πλαισίου για τη σύνθεση tweet

  1. Στην ετικέτα κατάστασης σύνδεσης, εισαγάγετε ένα στοιχείο ελέγχου εισαγωγής κειμένου και μετονομάστε το σε NewTweetTextInput.

  2. Ορίστε την ιδιότητα του πλαισίου εισαγωγής κειμένου Default σε "".

    Συλλογή μέσω πληροφοριών κατάστασης και πλαισίου εισαγωγής κειμένου.

Βήμα 6: Προσθήκη ενός κουμπιού για δημοσίευση του tweet

  1. Στο πλαίσιο εισαγωγής κειμένου, προσθέστε ένα στοιχείο ελέγχου κουμπιού και ορίστε την ιδιότητα Text σε αυτήν την τιμή:

    "Tweet"

  2. Ορίστε την ιδιότητα OnSelect του κουμπιού σε αυτόν τον τύπο:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Στην ιδιότητα OnStart για την Εφαρμογή, προσθέστε μια γραμμή στο τέλος του τύπου:

    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
    

    Εκτελέστε τον τύπο για να φορτώσει tweets με σειρά χωρίς σχολιασμό.

Αυτός ο τύπος προσδιορίζει εάν η συσκευή είναι συνδεδεμένη:

  • Εάν η συσκευή είναι συνδεδεμένη, δημοσιεύει αμέσως το tweet.
  • Εάν η συσκευή είναι εκτός σύνδεσης, καταγράφει το tweet σε μια συλλογή LocalTweetsToPost και το αποθηκεύει στη συσκευή.

Έπειτα, ο τύπος επαναφέρει το κείμενο στο πλαίσιο εισαγωγής κειμένου.

Βήμα 7: Έλεγχος για νέα tweet

  1. Στη δεξιά πλευρά του κουμπιού, προσθέστε ένα στοιχείο ελέγχου χρονομέτρου.

    Τελικές εφαρμογές.

  2. Ορίστε την ιδιότητα Duration του χρονομέτρου σε 300000.

  3. Ορίστε τις ιδιότητες AutoStart και Repeat του χρονομέτρου σε true.

  4. Ορίστε την ιδιότητα OnTimerEnd του χρονομέτρου σε αυτόν τον τύπο:

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

Αυτός ο τύπος προσδιορίζει εάν η συσκευή είναι συνδεδεμένη. Εάν είναι, η εφαρμογή προσθέτει ως tweets όλα τα στοιχεία στη συλλογή LocalTweetsToPost και μετά απαλείφει τη συλλογή.

Δοκιμή της εφαρμογής

  1. Ανοίξτε την εφαρμογή χρησιμοποιώντας το Power Apps Mobile σε μια κινητή συσκευή που είναι συνδεδεμένη στο Internet.

    Τα υπάρχοντα tweet εμφανίζονται στη συλλογή και η κατάσταση εμφανίζεται ως Συνδεδεμένη.

  2. Αποσυνδέστε τη συσκευή από το Internet ενεργοποιώντας τη λειτουργία πτήσης της συσκευής και απενεργοποιώντας το Wi-Fi.

    Η ετικέτα κατάστασης δείχνει ότι η εφαρμογή βρίσκεται εκτός σύνδεσης.

  3. Ενώ η συσκευή βρίσκεται εκτός σύνδεσης, γράψτε ένα tweet που περιλαμβάνει το Power Apps και επιλέξτε το κουμπί Tweet.

    Το tweet θα αποθηκευθεί τοπικά στη συλλογή LocalTweetsToPost.

  4. Ξανασυνδέστε τη συσκευή στο Internet απενεργοποιώντας τη λειτουργία πτήσης της συσκευής και ενεργοποιώντας το Wi-Fi.

    Εντός πέντε λεπτών, η εφαρμογή καταχωρεί το tweet, το οποίο εμφανίζεται στη συλλογή.

Ελπίζουμε αυτό το άρθρο να σας έδωσε μια ιδέα των δυνατοτήτων του Power Apps για τη δημιουργία εφαρμογών εκτός σύνδεσης. Όπως πάντα, αναμένουμε τα σχόλιά σας στο φόρουμ μας και περιμένουμε να μοιραστείτε παραδείγματα εφαρμογών εκτός σύνδεσης στο ιστολόγιο της κοινότητας του Power Apps.

Σημείωση

Μπορείτε να μας πείτε ποια γλώσσα προτιμάτε για την τεκμηρίωση; Πάρτε μέρος σε μια σύντομη έρευνα. (σημειώνεται ότι αυτή η έρευνα είναι στα Αγγλικά)

Η έρευνα θα διαρκέσει περίπου επτά λεπτά. Δεν συλλέγονται προσωπικά δεδομένα (δήλωση προστασίας προσωπικών δεδομένων).