Mengembangkan aplikasi kanvas berkemampuan offline

Pengguna seluler sering kali harus produktif meskipun memiliki konektivitas terbatas atau tidak. Saat membuat aplikasi kanvas, Anda dapat melakukan tugas berikut:

  • Buka Power Apps Seluler dan jalankan aplikasi saat perangkat tidak terhubung ke jaringan.
  • Tentukan kapan aplikasi offline, online, atau dalam sambungan terukur menggunakan objek sinyal Sambungan.
  • Sinkronkan data antara perangkat Anda dan server.

Jika aplikasi Anda terhubung Dataverse, dukungan offline sudah ada di dalamnya. Power Apps akan memungkinkan Anda mengunduh data ke perangkat Anda dan mengunggah perubahan kembali Dataverse. Jika aplikasi Anda tidak digunakan Dataverse, Anda dapat menggunakan koleksi dan memanfaatkan fungsi LoadData dan SaveData untuk penyimpanan dasar saat offline.

Catatan

  • Kemampuan offline untuk aplikasi kanvas tersedia saat menjalankan aplikasi menggunakan pemutar Seluler Power Apps asli di iOS, Android, dan Windows.
  • Aplikasi kanvas yang berjalan di browser web tidak dapat berjalan offline, bahkan saat menggunakan browser web pada perangkat bergerak.
  • Aplikasi kanvas dalam Teams dibatasi hingga 1 MB data melalui fungsi LoadData dan SaveData—yang berguna untuk sejumlah kecil string teks, angka, dan tanggal. Penggunaan gambar atau media lainnya tidak sesuai dengan batas ini. Informasi selengkapnya: Referensi fungsi LoadData dan SaveData

Mengaktifkan dukungan offline di Dataverse aplikasi kanvas berbasis

Untuk Microsoft Dataverse aplikasi kanvas berbasis, Anda harus menggunakan kemampuan offline bawaan dengan pengalaman offline-first . Untuk informasi selengkapnya, lihat Menyiapkan mobile offline untuk aplikasi kanvas dan Bekerja dengan aplikasi kanvas offline. Dengan flip switch, aplikasi Anda dapat bekerja dengan Dataverse data di mana pun Anda berada, dengan atau tanpa koneksi jaringan. Cukup buat aplikasi Anda dengan rumus standar Power Fx dan fitur offline menangani semua kerumitan untuk Anda.

Gunakan LoadData dan SaveData untuk semua konektor lainnya

Bagian ini mencakup contoh penggunaan data Twitter. Contoh yang lebih sederhana yang tidak memerlukan sambungan disertakan dalam referensi fungsi LoadData dan SaveData.

Tonton video ini untuk mempelajari cara membuat aplikasi kanvas berkemampuan offline yang tidak menggunakan Dataverse data:

Pembatasan

LoadData dan SaveData bergabung untuk membentuk mekanisme sederhana yang menyimpan sejumlah kecil data pada perangkat lokal. Dengan menggunakan fungsi ini, Anda dapat menambahkan kemampuan offline sederhana ke aplikasi Anda.

Fungsi ini dibatasi oleh jumlah memori aplikasi yang tersedia karena beroperasi pada kumpulan di memori. Memori yang tersedia dapat bervariasi tergantung pada perangkat, sistem operasi, memori yang digunakan Power Apps Seluler, dan kompleksitas aplikasi dalam hal layar dan kontrol. Jika Anda menyimpan lebih dari satu megabita data, uji aplikasi Anda dengan skenario yang diharapkan pada perangkat yang Anda harapkan untuk dijalankan. Anda biasanya memiliki 30-70 megabita yang tersedia.

Fungsinya juga tidak secara otomatis menangani konflik gabungan saat perangkat online. Konfigurasi pada data apa yang disimpan dan cara menangani rekoneksi terserah pembuat saat menulis ekspresi.

Untuk pembaruan tentang kemampuan offline, kembali ke topik ini, dan berlangganan ke Power Apps blog.

Gambaran Umum

Bila Anda merancang skenario offline, Anda harus terlebih dulu mempertimbangkan cara kerja aplikasi Anda dengan data. Aplikasi di Power Apps terutama data akses melalui serangkaian perangkat konektor yang disediakan platform, seperti SharePoint, Office 365 dan Microsoft Dataverse. Anda juga dapat membangun konektor kustom yang memungkinkan aplikasi mengakses layanan apa pun yang menyediakan titik akhir RESTful. Ini dapat berupa API Web atau layanan seperti Azure Functions. Semua konektor ini menggunakan HTTPS melalui Internet, yang berarti pengguna Anda harus online agar dapat mengakses data dan kemampuan lain yang ditawarkan layanan.

Aplikasi Power Apps dengan konektor.

Menangani data offline

Di Power Apps, Anda dapat memfilter, mencari, mengurutkan, menggabungkan, dan memanipulasi data dengan cara yang konsisten, apa pun sumber datanya. Sumber berkisar dari koleksi dalam memori di aplikasinya ke daftar yang dibuat dengan Microsoft Lists ke database SQL dan Dataverse. Karena konsistensi ini, Anda dapat dengan mudah menargetkan ulang aplikasi untuk menggunakan sumber data yang berbeda. Yang lebih penting untuk skenario offline, Anda dapat menggunakan koleksi lokal untuk manajemen data dengan hampir tidak ada perubahan pada logika aplikasi. Bahkan, koleksi lokal adalah mekanisme utama untuk menangani data offline.

Membuat aplikasi offline

Untuk menjaga fokus pada aspek offline dari pengembangan aplikasi, topik ini mengilustrasikan skenario sederhana yang difokuskan di sekitar Twitter. Anda akan membuat aplikasi yang memungkinkan Anda untuk membaca postingan Twitter dan mengirimkan Tweet saat sedang offline. Saat aplikasi online, aplikasi akan memposting tweet dan memuat ulang data lokal.

Pada tingkat tinggi, aplikasi melakukan tugas berikut:

  • Saat pengguna membuka aplikasi:

    • Jika perangkat sedang online, aplikasi akan mengambil data melalui konektor Twitter dan mempopulasikan kumpulan dengan data tersebut.
    • Jika perangkat offline, aplikasi akan memuat data dari file cache lokal menggunakan fungsi LoadData.
    • Pengguna dapat mengirimkan tweet. Jika aplikasi online, posting tweet langsung ke Twitter dan refresh cache lokal.
  • Setiap lima menit saat aplikasi online:

    • Aplikasi memposting tweet di cache lokal.
    • Aplikasi me-refresh cache lokal dan menyimpannya dengan menggunakan fungsi SaveData.

Langkah 1: Tambahkan Twitter ke aplikasi ponsel kosong

  1. Buat aplikasi kanvas kosong dengan tata letak Ponsel.
  2. Pada tab Tampilkan, pilih Sumber data.
  3. Pada panel Data, pilih Tambahkan sumber data.
  4. Pilih Sambungan Baru > Twitter > Buat.
  5. Masukkan kredensial, buat sambungan, lalu tutup panel Data.

Langkah 2: Kumpulkan tweet yang ada

  1. Di panel Tampilan hierarki , pilih Aplikasi, lalu atur properti OnStart ke rumus ini:

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

    Rumus untuk memuat tweet.

  2. Di panel Tampilan hierarki , pilih menu elipsis untuk objek Aplikasi, lalu pilih Jalankan OnStart untuk menjalankan rumus tersebut.

    Jalankan rumus untuk memuat tweet.

    Catatan

    Fungsi LoadData dan SaveData mungkin menampilkan kesalahan Power Apps Studio karena peramban tidak mendukungnya. Namun, mereka akan tampil seperti biasanya setelah Anda menyebarkan aplikasi ini ke perangkat.

Rumus ini memeriksa apakah perangkat online:

  • Jika perangkat online, rumus tersebut memuat hingga 10 tweet dengan istilah pencarian "PowerApps" ke dalam kumpulan LocalTweets .
  • Jika perangkat offline, rumus akan memuat cache lokal dari file bernama "LocalTweets" jika perangkat tersedia.
  1. Pada tab Masukkan , pilih Galeri > Tinggi kosong fleksibel.

  2. Atur properti Item dari kontrol Galeri ke LocalTweets.

  3. Di templat galeri, tambahkan tiga kontrol Label, dan atur properti Teks untuk setiap label ke salah satu nilai berikut:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Buat teks di label terakhir tebal sehingga galeri menyerupai contoh ini.

    Galeri menampilkan sampel tweet.

Langkah 4: Tampilkan status koneksi

  1. Di dalam galeri, masukkan label, lalu Atur properti Warna menjadi mérah.

  2. Atur properti Teks label terbaru ke rumus ini:

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

Rumus ini menentukan apakah perangkat online. Jika demikian, label menunjukkan Terhubung ; jika tidak, maka akan menampilkan Offline.

Langkah 5: Tambahkan kotak untuk menulis Tweet

  1. Di dalam label status sambungan, masukkan kontrol Input teks, lalu ganti nama menjadi NewTweetTextInput.

  2. Atur properti default kotak input teks Default ke "".

    Galeri melalui info status dan kotak teks-input.

Langkah 6: Tambahkan tombol untuk memposting tweet

  1. Di dalam kotak text-Input, tambahkan kontrol Tombol, dan atur properti Teks ke nilai ini:

    "Tweet"

  2. Atur properti OnSelect tombol ke rumus ini:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Di properti OnStart untuk Aplikasi, tambahkan baris di akhir rumus:

    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
    

    Jalankan rumus untuk memuat tweet dengan baris tidak berkomentar.

Rumus ini menentukan apakah perangkat online:

  • Jika perangkat sedang online, segera posting tweet.
  • Jika perangkat offline, akan menangkap Tweet dalam kumpulan LocalTweetsToPost dan menyimpannya ke perangkat.

Kemudian rumus mengatur ulang teks di kotak input teks.

Langkah 7: Periksa tweet baru

  1. Di sisi kanan tombol, tambahkan kontrol Pengatur Waktu.

    Aplikasi terakhir.

  2. Atur properti Durasi pengatur waktu menjadi 300000.

  3. Atur properti AutoStar dan Ulangi pengatur waktu ke benar.

  4. Atur OnTimerEnd pengatur waktu ke rumus ini:

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

Rumus ini menentukan apakah perangkat online. Jika iya, aplikasi me-tweet semua item dalam koleksi LocalTweetsToPost dan kemudian membersihkan koleksi.

Uji aplikasi

  1. Buka aplikasi menggunakan Power Apps Mobile pada perangkat bergerak yang tersambung ke Internet.

    Tweet yang ada muncul di galeri, dan status menunjukkan Tersambung.

  2. Putuskan sambungan perangkat dari Internet dengan mengaktifkan mode pesawat perangkat dan menonaktifkan Wi-Fi.

    Label status menunjukkan bahwa aplikasi sedang Offline.

  3. Saat perangkat offline, tulis tweet yang mencakup Power Apps, lalu pilih tombol Tweet.

    Tweet disimpan secara lokal di koleksi LocalTweetsToPost.

  4. Sambungkan perangkat ke Internet dengan menonaktifkan mode pesawat perangkat dan mengaktifkan Wi-Fi.

    Dalam lima menit, aplikasi menyebar tweet yang muncul di galeri.

Kami berharap artikel ini memberi Anda gambaran tentang kemampuan yang Power Apps punya untuk membangun aplikasi offline. Seperti biasa, mohon berikan umpan balik di forum kami dan bagikan contoh aplikasi offline Anda di blog komunitas Power Apps.

Catatan

Apa bahasa dokumentasi yang Anda inginkan? Lakukan survei singkat. (perlu diketahui bahwa survei ini dalam bahasa Inggris)

Survei akan berlangsung kurang lebih selama tujuh menit. Tidak ada data pribadi yang dikumpulkan (pernyataan privasi).