2016-11-24 54 views
0

我們一直對AngularDart 2.如何與AngularDart

什麼是有它可運行在即使他們失去了因特網連接的客戶的最佳方式構建一個簡單的Web應用程序開始了建立一個支持離線Web應用程序?現在我正在使用Lawndart庫來使用本地存儲來保存從REST-Api收到的一些數據,並且它工作正常。但我還沒有想出如何告訴客戶端瀏覽器緩存所有的資源,並在沒有互聯網連接時使用它們。 (現在我只是簡單地使用Redstone-Dart服務器(運行REST服務)提供源代碼)

我偶然發現了Angular Mobile Toolkit(https://mobile.angular.io/guides/),但它僅適用於TypeScript ,或者有沒有辦法與Dart一起使用它?

也在項目後期,可能需要發送推送通知給客戶端...這可能與Dart和Angular 2?

+0

不知道爲什麼沒有人建議你看看PouchDB它是專門爲此設計的。希望能幫助到你。 Dart執行:https://github.com/shamblett/sporran DartLang文檔:https://pub.dartlang.org/packages/sporran –

回答

2

關於以下點:

緩存中的所有源和沒有互聯網連接

雖然已過時和有一個不好的名聲時使用它們,我還是個人使用應用程序緩存(https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache)。據我所知,當人們談論漸進式應用程序和服務工作人員時,解決方案看起來如此。它是目前唯一的跨瀏覽器解決方案。

它很容易設置(只提供manifest.appcache)。對於角度應用程序,它主要包含index.html,main.dart.js和外部依賴項。 對我來說它適用於Safari,Chrome和Firefox(不能告訴IE/Edge)。由於iOS是我的需要,我無法找到另一種替代方案(服務工作者)。 Chrome開始爲非https網站發送警告,但目前爲止這麼好。

在Web環境中,實時推送通知更爲複雜;我個人使用Firebase實時數據庫來「推送」更新

+0

感謝您的答案!我使用了應用程序緩存方法,今天想自己添加一個答案......我的appcache文件中只有一個錯字,並且當一個文件無法加載時,整個appcache將無法工作。關於firebase方法,除了自我實現的後端服務器之外,您還使用它嗎,還是隻有提供數據和文件的Firebase服務器?是否有可能自己託管Firebase服務器? – andi17

+0

是的appcache有一些限制。我只是使用firebase進行身份驗證和推送機制(appengine文檔實際上建議從頻道 - 舊的實時解決方案切換到firebase:https://cloud.google.com/appengine/docs/deprecations/channel)。我不會將數據存儲在firebase中,因爲我現在有一個appengine java後端。我只是使用firebase通知客戶他們有從後端拉取的數據......並且據我所知,不,您無法託管Firebase服務器。 – alextk

+0

如果你想要一個沒有外部依賴的純粹的飛鏢,我可以推薦另一個解決方案,我只用一個飛鏢服務器(shelf + rpc + mongo):使用websocket進行實時通知。我不知道紅石(這是基於右邊的貨架?),但貨架有一個很好的方式來整合websocket – alextk