2015-12-31 24 views
3

好的混合應用程序是2015年的新酷事件。但與本機應用程序相比,有哪些缺點?與原生應用程序相比,使用angularjs離子的缺點?

表現是一個。瀏覽器永遠不會像原生應用程序那樣流暢運行。

?啓動時運行後臺服務? (可能是因爲瀏覽器沒有在啓動時啓動,例如在沒有應用程序打開的情況下接收whatsapp風格的通知似乎是不可能的)

?offline offline? (我可以基本上離線啓動應用程序,而無需通過網絡加載任何HTML等?)

?還有什麼?

是否有解決這些問題的離子選擇?

編輯

將它最終有可能使用的是沿側開機應用服務?例如你安裝離子應用程序,並且隨後會添加一個本地服務?

+0

親愛的scrum大師,如果您投票結束,請說明原因。 「太廣泛」不是理由 – Toskan

回答

2

在書中Ionic in Action,作者Jeremy Wilken提供說,這對混合移動應用的缺點:

混合的應用程序有一些缺點,由於被放置在網頁視圖和原生集成的侷限性的限制:

  • WebView限制 - 應用程序只能運行和WebView實例一樣,這意味着性能與平臺瀏覽器的質量相關。
  • 通過插件訪問本地功能 - 訪問您需要的本地API可能目前不可用,並且可能需要額外的開發才能使插件支持它。
  • 沒有本地用戶界面控件 - 沒有像Ionic這樣的工具,開發人員將不得不創建所有的用戶界面元素。

如果在列表中有很多項目,滾動將遭受(真實的,這是由collection-repeat改善,但它仍然是,如果我們是吹毛求疵的事實)

顯然,如果你正試圖建立一個遊戲,更不用說3D遊戲了,那麼你根本就不應該考慮混合移動應用程序。在這種情況下Unity3D(從我個人的經驗)是你可能想要採取的道路。

要回答你關於離線使用的問題 - 當然,你可以離線使用你的應用程序,如果你當然是這樣設計的,那麼你不需要一個固定的Internet連接。例如,在我爲Pluralsight編寫的4 part tutorial series中,我向您展示瞭如何創建一個簡單的計算器應用程序並將其部署到App/Play商店,並且此應用程序例如不需要任何Internet連接。如果你有興趣,還有free book

解決問題的方法之一是在本地保存所有內容,並在獲取連接時同步在脫機期間保存的內容。顯然,這不像聽起來那麼簡單,需要一段時間才能做正確的事情,但關於可行性,這絕對有可能。

希望這會有所幫助。

+0

我明白,本地功能是通過插件提供的,但是:後臺服務應用程序無法在啓動時運行,因爲這意味着整個瀏覽器必須啓動,才能最終調用插件,對吧?或者我錯過了什麼?所以這永遠不會到來,但是非常重要的是我。一個插件在被離子應用程序調用時運行,但無法單獨安裝到啓動中imho – Toskan

+0

我必須誠實地說,我不完全明白你的意思 - 你能提供一個例子嗎?我的意思是,一般來說,如果您的應用程序最初需要一些數據,因爲應用程序是從某些外部API開始的,並且您沒有互聯網連接 - 您的應用程序應該按照「應用程序需要互聯網連接運行」這樣的方式處理。 – Nikola

+0

ok想到這一點:你關掉你的手機 - >然後你打開你的手機。說有互聯網。新手機開始如此。我的離子應用尚未啓動,是否同意?要接收我的應用程序的通知,必須有一些正在運行,請同意?我無法將消息從我的服務器發送給安裝了我的應用的用戶,但是誰沒有運行它,對。例如,whatsapp,facebook,在手機啓動時啓動一個小型後臺服務。即使用戶沒有啓動應用程序,該後臺服務也會查找消息。否則,你將不得不啓動電話,然後_manually_啓動whatsapp。 – Toskan

相關問題