2015-08-09 245 views
8

我目前正在構建一個使用Firebase和AngularFire作爲我選擇的後端/服務器的Angular 1.x應用程序。 由於應用程序/網站已針對移動設備進行了優化,並且在將其添加到主頁時完全適合作爲應用程序,所以我想知道如何讓用戶即使手機處於離線狀態也能使用它。離線使用Firebase Angular應用程序

在網上搜索時,我發現Firebase爲Android Java的對手提供了一個keepSynced(true),但是我無法爲js找到這樣的選項。 然後我使用HTML5的localStorage和基於上次更改時間的同步手動方法,但由於我使用了一些AngularFire的方便命令(如$ save),因此我的大部分代碼都以此方式打破。

有什麼建議嗎?

+0

這個問題(http://stackoverflow.com/questions/25990048/offline-firebase)提到,AngularFire支持重新連接中斷連接,但不是真正的脫機支持。看起來你需要推出自己的解決方案或使用其他服務。 – Isaac

回答

2

使用$provide.decoratorangular docs
$ provide.decorator的一個很好的使用情況是,當你需要一些第三方的下載/上傳服務,上你的模塊取決於做輕微的「調整」,而離職完好(因爲你不是服務的擁有者/維護者)stackoverflow question

基本上你可以檢查是否navigator.onLine === true內部裝飾(或使用任何其他的方法來檢測是否請求火力點是要失敗的),然後覆蓋根據您的需求angularFire的一些方法(寫的localStorage而不是發送實際angularFire請求)

這裏是我的example使用angularfire首要$add法裝飾

和裝飾

1

here's the basic example保持完全FUNCT離線案例手動應用程序可能是一個非常棘手的道路,但有幾種方法可以解決這個問題,你可以嘗試使用kinvey,檢查頁面,我認爲這正是你正在尋找的。

另一種方法是使用indexedDB而不是localStorage,並根據連接狀態選擇保存操作的目標,通過簡單地搜索關於同步脫機html5 indexedDB,可以找到關於該主題的大量資源。 我希望這對你有幫助