Çevrimdışı özelliğe sahip tuval uygulamaları geliştirme

Mobil kullanıcıların, bağlantılarının sınırlı olması veya hiç olmaması durumunda bile verimli olmaları gerekir. Bir tuval uygulaması oluşturduğunuzda şu görevleri gerçekleştirebilirsiniz:

  • Power Apps Mobile'ı açıp uygulamaları çevrimdışı çalıştırma.
  • Bağlantı sinyal nesnesini kullanarak bir uygulamanın çevrimdışı, çevrimiçi veya tarifeli bir bağlantıda olup olmadığını belirleme.
  • Koleksiyonları kullanma ve çevrimdışıyken temel veri depolaması için LoadData ve SaveData işlevlerinden yararlanma.

Not

Bu makaledeki örnekte Twitter verileri kullanılmıştır. Bağlantı gerektirmeyen daha basit bir örnek LoadData ve SaveData işlevi başvurusunda verilmiştir.

Çevrimdışı etkin tuval uygulamaları oluşturma hakkında bilgi edinmek için bu videoyu izleyin:

Sınırlamalar

LoadData ve SaveData, yerel bir cihazda az miktarda veri depolamak için basit bir mekanizma oluşturmak üzere birlikte kullanılır. Bu işlevleri kullanarak uygulamanıza basit çevrimdışı özellikler ekleyebilirsiniz.

Bu işlevler, bellek içi koleksiyonda çalıştıklarından kullanılabilir uygulama belleği miktarıyla sınırlıdır. Kullanılabilir bellek, cihaza, işletim sistemine, Power Apps Mobile'ın kullandığı belleğe ve uygulamanın ekranlar ve denetimler açısından karmaşıklığına bağlı olarak değişebilir. Birkaç megabayttan daha fazla veri depolarsanız uygulamanızı çalıştırmasını beklediğiniz cihazlarda beklenen senaryolarla sınayın. Genellikle 30-70 megabayt kullanılabilir belleğiniz vardır.

İşlevler, bir cihaz çevrimiçi duruma geldiğinde birleştirme çakışmalarını otomatik olarak çözmez. İfadeler yazılırken hangi verilerin kaydedildiğine ve yeniden bağlantının nasıl işleneceğine dair yapılandırma geliştiriciye bağlıdır.

Çevrimdışı özelliklerdeki güncelleştirmeler için bu konuya dönün ve Power Apps bloğuna abone olun.

Genel bakış

Çevrimdışı senaryolar tasarlarken öncelikle uygulamalarınızın verilerle nasıl çalıştığını incelemeniz gerekir. Power Apps'teki uygulamalar, birincil olarak SharePoint, Office 365 ve Microsoft Dataverse gibi platformun sağladığı bağlayıcılar kümesi aracılığıyla verilere erişir. Ayrıca uygulamaların RESTful uç noktası sağlayan herhangi bir hizmete erişmesine olanak tanıyan özel bağlayıcılar da oluşturabilirsiniz. Bu Web API'si veya Azure İşlevleri gibi bir hizmet olabilir. Bu bağlayıcıların tümü İnternet üzerinden HTTPS kullanır. Bu, kullanıcılarınızın verilere ve bir hizmetin sunduğu diğer özelliklere erişebilmeleri için çevrimiçi olmaları gerektiği anlamına gelir.

Bağlayıcılar içeren Power Apps uygulaması.

Verileri çevrimdışı işleme

Power Apps'te veri kaynağından bağımsız olarak verileri tutarlı bir şekilde filtreleyebilir, arayabilir, sıralayabilir, toplayabilir ve değiştirebilirsiniz. Kaynaklar arasında, uygulamadaki bellek içi koleksiyonlardan Microsoft Lists kullanılarak oluşturulmuş listeler ve SQL veritabanları ile Dataverse yer alır. Bu tutarlılık nedeniyle, bir uygulamayı farklı bir veri kaynağı kullanacak şekilde kolayca yeniden hedefleyebilirsiniz. Çevrimdışı senaryolarda daha da önemli olan, bir uygulamanın mantığında neredeyse hiçbir değişiklik yapmadan veri yönetimi için yerel koleksiyonlar kullanabilmenizdir. Aslında, yerel koleksiyonlar, çevrimdışı verileri işlemeye yönelik birincil mekanizmadır.

Çevrimdışı uygulama oluşturma

Bu konuda, uygulama geliştirmenin çevrimdışı yönlerine odaklanmak için Twitter üzerinden basit bir senaryo gösterilir. Çevrimdışıyken Twitter gönderileri okumanıza ve tweet göndermenize olanak sağlayan bir uygulama oluşturacaksınız. Uygulama çevrimiçi olduğunda tweet gönderir ve yerel verileri yeniden yükler.

Uygulama, üst düzeyde şu görevleri gerçekleştirir:

  • Kullanıcı uygulamayı açtığında:

    • Cihaz çevrimiçiyse uygulama Twitter bağlayıcısından verileri alır ve bu verilerle bir koleksiyonu doldurur.
    • Cihaz çevrimdışıysa uygulama LoadData işlevini kullanarak verileri yerel bir önbellek dosyasından yükler.
    • Kullanıcı tweet gönderebilir. Uygulama çevrimiçiyse tweet'leri doğrudan Twitter'a gönderir ve yerel önbelleği yeniler.
  • Uygulama çevrimiçiyken her beş dakikada bir:

    • Uygulama, yerel önbellekteki tüm tweet'leri gönderir.
    • Uygulama yerel önbelleği yeniler ve SaveData işlevini kullanarak kaydeder.

Adım 1: Twitter'ı boş bir telefon uygulamasına ekleyin

  1. Telefon düzeniyle boş bir tuval uygulaması oluşturun.
  2. Görünüm sekmesinde Veri kaynakları'nı seçin.
  3. Veri bölmesinde, Veri kaynağı ekle'yi seçin.
  4. Yeni Bağlantı > Twitter > Oluştur'u seçin.
  5. Kimlik bilgilerinizi girin, bağlantıyı oluşturun ve ardından Veri bölmesini kapatın.

Adım 2: Mevcut tweet'leri toplayın

  1. Ağaç görünümü bölmesinde, Uygulama'yı seçin ve ardından OnStart özelliğini şu formül olarak ayarlayın:

    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 yükleme formülü.

  2. Ağaç görünümü bölmesinde, Uygulama nesnesi için üç nokta menüsünü seçin ve ardından bu formülü çalıştırmak için OnStart'ı çalıştır'ı seçin.

    Tweet yükleme formülünü çalıştırma.

    Not

    Tarayıcılar LoadData ve SaveData işlevlerini desteklemediğinden Power Apps Studio'da bir hata gösterilebilir. Ancak bu uygulamayı bir cihaza dağıttıktan sonra normal şekilde çalışırlar.

Bu formül, cihazın çevrimiçi olup olmadığını denetler:

  • Cihaz çevrimiçiyse formül, LocalTweets koleksiyonuna "PowerApps" arama terimini içeren 10 taneye kadar tweet yükler.
  • Cihaz çevrimdışıysa formül yerel önbelleği "LocalTweets" adlı bir dosyadan (varsa) yükler.
  1. Ekle sekmesinde, Galeri > Boş esnek yükseklik'i seçin.

  2. Galeri denetiminin Items özelliğini LocalTweets olarak ayarlayın.

  3. Galeri şablonuna üç Etiket denetimi ekleyin ve her etiketin Text özelliğini şu değerlerden biri olarak ayarlayın:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Galerinin bu örneğe benzemesi için son etiketteki metni kalın yapın.

    Örnek tweet'leri gösteren galeri.

Adım 4: Bağlantı durumunu gösterin

  1. Galerinin altına bir etiket ekleyin ve ardından Renk özelliğini Kırmızı olarak ayarlayın.

  2. En yeni etiketin Text özelliğini şu formül olarak ayarlayın:

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

Bu formül, cihazın çevrimiçi olup olmadığını belirler. Bu durumda etiket Bağlı olarak gösterilir, aksi halde Çevrimdışı olarak gösterilir.

Adım 5: Tweet oluşturmak için kutu ekleyin

  1. Bağlantı durumu etiketi altında, Metin girişi denetimi ekleyin ve NewTweetTextInput olarak yeniden adlandırın.

  2. Metin girişi kutusunun Default özelliğini "" olarak ayarlayın.

    Durum bilgisi ve metin giriş kutusunda galeri.

Adım 6: Tweet gönderme düğmesi ekleyin

  1. Metin girişi kutusunun altına bir Düğme denetimi ekleyin ve Text özelliğini şu değer olarak ayarlayın:

    "Tweet"

  2. Düğmenin OnSelect özelliğini şu formül olarak ayarlayın:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. Uygulama'nın OnStart özelliğinde, formülün sonuna bir satır ekleyin:

    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
    

    Tweet'leri açıklamasız satırla yüklemek için formülü çalıştırma.

Bu formül, cihazın çevrimiçi olup olmadığını belirler:

  • Cihaz çevrimiçiyse tweet'i hemen gönderir.
  • Cihaz çevrimdışıysa tweeti LocalTweetsToPost koleksiyonunda tutar ve cihaza kaydeder.

Bu işlemin ardından formül, metin girişi kutusundaki metni sıfırlar.

Adım 7: Yeni tweet'leri kontrol edin

  1. Düğmenin sağ tarafına bir Zamanlayıcı denetimi ekleyin.

    Son uygulamalar.

  2. Zamanlayıcının Süre özelliğini 300000 olarak ayarlayın.

  3. Zamanlayıcının AutoStart ve Yineleme özelliğini doğru olarak ayarlayın.

  4. Zamanlayıcının OnTimerEnd özelliğini şu formül olarak ayarlayın:

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

Bu formül, cihazın çevrimiçi olup olmadığını belirler. Bu durumda uygulama LocalTweetsToPost koleksiyonundaki tüm öğeleri tweet olarak gönderir ve ardından koleksiyonu siler.

Uygulamayı test etme

  1. Uygulamayı, internete bağlı bir mobil cihazda Power Apps Mobile kullanarak açın.

    Mevcut tweet'ler galeride görüntülenir ve durum Bağlı olarak gösterilir.

  2. Cihazın uçak modunu etkinleştirip wi-fi'yi devre dışı bırakarak cihazın İnternet bağlantısını kesin.

    Durum etiketi uygulamanın Çevrimdışı olduğunu gösterir.

  3. Cihaz çevrimdışıyken Power Apps içeren bir tweet yazın ve ardından Tweet düğmesini seçin.

    Tweet, LocalTweetsToPost koleksiyonunda yerel olarak depolanır.

  4. Cihazın uçak modunu devre dışı bırakıp wi-fi'yi etkinleştirerek cihazı İnternete yeniden bağlayın.

    Uygulama, beş dakika içinde galeride görüntülenen tweet'i gönderir.

Bu makalenin size Power Apps'in çevrimdışı uygulama oluşturma özelliklerine ilişkin bir fikir verdiğini umuyoruz. Her zaman olduğu gibi, forumumuzda geri bildirim sağlamanızı ve çevrimdışı uygulama örneklerinizi Power Apps topluluk bloğunda paylaşmanızı rica ederiz.

Not

Belge dili tercihlerinizi bizimle paylaşabilir misiniz? Kısa bir ankete katılın. (lütfen bu anketin İngilizce olduğunu unutmayın)

Anket yaklaşık yedi dakika sürecektir. Kişisel veri toplanmaz (gizlilik bildirimi).