Apache Cordova uygulamanıza çevrimdışı veri eşitleme ekleme
Bu öğretici, Apache Cordova hızlı başlangıç uygulaması için Azure Mobile Apps'in çevrimdışı eşitleme özelliğini kapsar. Çevrimdışı eşitleme, son kullanıcıların ağ bağlantısı olmadığında bile bir mobil uygulamayla (verileri görüntüleme, ekleme veya değiştirme) etkileşim kurmasına olanak tanır. Değişiklikler yerel veritabanında depolanır. Cihaz yeniden çevrimiçi olduktan sonra bu değişiklikler uzak arka uçla eşitlenir.
Bu öğreticiye başlamadan önce, uygun bir arka uç hizmeti oluşturmayı içeren Apache Cordova Hızlı Başlangıç Öğreticisi'ni tamamlamış olmanız gerekir.
Çevrimdışı eşitleme özelliği hakkında daha fazla bilgi edinmek için Azure Mobile Apps'te Çevrimdışı Veri Eşitleme konusuna bakın.
Uygulamayı çevrimdışı eşitlemeyi destekleyecek şekilde güncelleştirme
Çevrimiçi işlemde, çevrimiçi tabloya başvuru almak için kullanırsınız getTable()
. Çevrimdışı özellikleri uygularken, çevrimdışı SQlite deposuna başvuru almak için kullanırsınız getSyncTable()
. SQlite deposu Apache Cordova cordova-sqlite-storage
eklentisi tarafından sağlanır.
Dekont
Çevrimdışı eşitleme yalnızca Android ve iOS için kullanılabilir. Tarayıcı platformu belirtiminde çalışmaz.
www/js/index.js
dosyasında:
initializeStore()
Yerel SQlite veritabanını başlatmak için yöntemini güncelleştirin:function initializeStore() { store = new WindowsAzure.MobileServiceSqliteStore(); var tableDefinition = { name: 'todoitem', columnDefinitions: { id: 'string', deleted: 'boolean', version: 'string', Text: 'string', Complete: 'boolean' } }; return store .defineTable(tableDefinition) .then(initializeSyncContext); } function initializeSyncContext() { syncContext = client.getSyncContext(); syncContext.pushHandler = { onConflict: function (pushError) { return pushError.cancelAndDiscard(); }, onError: function (pushError) { return pushError.cancelAndDiscard(); } }; return syncContext.initialize(store); }
setup()
yöntemini tablonun çevrimdışı sürümünü kullanacak şekilde güncelleştirin:function setup() { todoTable = client.getSyncTable('todoitem'); refreshDisplay(); addItemEl.addEventListener('submit', addItemHandler); refreshButtonEl.addEventListener('click', refreshDisplay); }
Çevrimdışı depodaki
syncLocalTable()
verileri çevrimiçi depoyla eşitleyecek yöntemi değiştirin:function syncLocalTable() { return syncContext.push().then(function () { return syncContext.pull(new WindowsAzure.Query('todoitem')); }); }
Uygulamayı oluşturma
Android uygulamasını derlemek için aşağıdaki komutları çalıştırın:
cordova clean android
cordova build android
Uygulamayı çalıştırabilirsiniz:
cordova run android
Visual Studio Code içinde test edin
Cordova Araçları uzantısı yüklüyse Visual Studio Code'da hata ayıklayıcısını kullanabilirsiniz. Hata ayıklayıcıya tıklayın ve bir launch.json
dosya oluşturun. İstendiğinde Cordova'yı ve ardından yapılandırmaları (örneğin, Öykünücüde Android'i çalıştır) seçin. Başlatma yapılandırması oluşturduktan sonra, uygulamayı hata ayıklayıcıda çalıştırabilirsiniz. Seçtiğiniz öykünücüde başlatılır. Ancak artık hata ayıklama çıktısını hata ayıklama konsolunuzda görebilirsiniz.
Uygulamayı test etme
Bu bölümde, WiFi açıkken davranışı test edin ve ardından Çevrimdışı senaryo oluşturmak için WiFi'yi kapatın.
Yapılacaklar listesindeki öğeler cihazdaki bir SQLite veritabanında depolanır. Verileri yenilediğinizde, değişiklikler hizmete gönderilir (gönderme). Uygulama daha sonra yeni öğeler ister (çekme). Öğreticide, yenileme bir simgeye basılarak veya "yenilemeye çek" kullanılarak seçilir.
- Cihazı veya simülatörü Uçak Modu'na yerleştirin.
- Bazı Yapılacaklar öğeleri ekleyin veya bazı öğeleri tamamlandı olarak işaretleyin.
- Cihazdan veya simülatörden çıkın (veya uygulamayı zorla kapatın) ve uygulamayı yeniden başlatın.
- Değişikliklerinizin cihazda kalıcı olduğunu doğrulayın.
- Azure TodoItem tablosunun içeriğini görüntüleyin. SQL Server Management Studio gibi bir SQL aracı ya da Fiddler veya Postman gibi bir REST istemcisi kullanın. Yeni öğelerin sunucuyla eşitlenmediğini doğrulayın
- Cihazda veya simülatörde WiFi'yi açın.
- "Yenilemek için çek" veya yenile simgesine basarak verileri yenileyin.
- TodoItem tablo verilerini yeniden gözden geçirin. Yeni ve değiştirilmiş öğeler artık görünmelidir.
Sonraki adımlar
Kimlik doğrulamasını uygulamak için devam edin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin