2014-07-18 30 views
2

我正在使用Phonegap開發移動應用程序。一個瘋狂但優雅的解決方案,可以無縫更新混合應用程序

與Web應用程序不同,移動應用程序是一種靜態客戶端,它的更新頻率低於預期。而且,需要版本管理來維護服務器端和客戶端之間的依賴關係。

我在考慮如何讓移動應用更像純瀏覽器。這是一個潛在的解決方案。

  1. Phonegap應用程序中的初始index.html從服務器獲取最新版本,並比較緩存在瀏覽器/ WebView中的版本號;
  2. 如果當前版本落後於最新版本,它會提取遠程主頁並替換整個html文檔並緩存最新版本號;

優點:

  1. 無需再發布移動應用的新版本;
  2. 所有平臺(手機和網絡)均使用最新版本,無需手動更新;

缺點:

  1. 明顯的延遲更新到新版本,其中包括首次發射時,
  2. 必須將所有腳本和樣式緩存在localStorage中,以防止瀏覽器意外重新加載這些文件。

我相信你們中的一些人必須有同樣的問題或想法。如果您在這裏分享您的想法,我將非常感激。

+0

對我來說,取捨取決於應用程序更新的頻率,應用程序的大小,以及是否可以給用戶一些視覺反饋,以便爲什麼應用程序花費更長時間來加載更新。 我認爲你的想法是一個簡單的解決方案,在某些情況下它可以是一個很好的解決方案。 –

回答

0

如果應用程序是一個工具,如尋找附近的餐館或要求提供送貨服務,我相信有一些固定的佈局和樣式的頁面會做。這些功能應該很少改變,對吧?

例如,您可以在頁面上顯示帶有標記的Google地圖,指示所有附近的餐館。只要保存在服務器上的餐館列表發生變化,客戶端就不需要進行任何修改,只要此頁面的功能保持不變即可。

想想谷歌的主頁。頂部總是有一個工具欄,一個Google Doodle和一個搜索欄。佈局幾乎總是一樣的。不同的是動態加載的Doodle。有一個固定的佈局應該會讓你免於頻繁地更新你的應用程序客戶端。

順便說一下,我通常不會更新手機上的應用程序,因爲我懶得這樣做。因此,我同意你儘可能少地發佈新版本。

0

我創建了一個單向同步,用於更新我的本地網絡存儲(SQLite),這幾乎在每個設備上都有。我的同步更新我的應用程序登錄/用戶它從數據庫獲取新的更新更新我的應用程序網絡存儲。

您可以使用常規SQLite來寫入您的設備的網絡存儲,只有在線時纔會更新。

相關問題