Apache Cordova提供負責基本的本機應用程序:
- 顯示網頁視圖(UIWebkit默認爲iOS,但你可以使用插件切換到WKWebkit對於Android,在「Android瀏覽器」的WebView用於Android 4.4,從Android 5(API 21)開始,webview基本上就是Chrome for Android)。
- 由於Cordova plugins,允許JavaScript運行到此webview中以「調用」(執行)本機代碼。這是可能的,因爲系統Webviews可以與本機代碼交互。
Ionic Framework(v1)由HTML,JavaScript和CSS組成(v2是在TypeScript中開發的,它是JavaScript的超集)。版本1依靠AngularJS作爲前端JavaScript框架,並通過提供諸如手勢管理,無限滾動,佈局(菜單,選項卡,列表等)等功能幫助開發人員編寫「類似本機」的web應用程序。版本2依賴於Angular 2,並提供額外的組件(Date picker,Split panel ...)和特性(Ionic Native,一個JavaScript API,它傾向於「標準化」您使用Cordova 插件的方式)。
如果您只是想創建一個Web應用程序(這仍然是HTML,JavaScript和CSS),則可以在沒有Cordova的情況下使用Ionic。 Cordova允許您將此Web應用程序放入本機外殼。當混合應用程序(Cordova,您安裝的插件和您的Web應用程序)被捆綁到.ipa或.apk時,html/javascript/css代碼將被移到特定的文件夾中,Cordova希望找到索引。 html(默認)加載到Webview中。
PS:我的英語並不完美,但如果一個觀點不明確,我很樂意提供更多細節。
編輯:
請你能回答我在我的崗位具體問題?
當然!
的Apache科爾多瓦是由JavaScript和本地代碼。查看cordova-android(JavaScript + Java),cordova-ios(JavaScript + Objective-C)等項目。每個移動操作系統都有一個專用的「平臺」。當你開始一個新的科爾多瓦項目時,大多數時候,你做的第一個操作是cordova platform add <platform>
(iOS,Android ...)。這些是正在加載的代碼。 Ionic Framework是一個由HTML,JavaScript和CSS組成的「純粹的網絡」框架。
Apache Cordova與原生移動平臺交互作爲任何本機應用程序:使用系統API。由於平臺特定的「橋」(嵌入在cordova-android,cordova-ios,cordova-windows中的本地代碼允許),webview可以與您的web應用程序(當然)和本機代碼進行交互。你必須編寫一個插件,以便從你的JavaScript調用本地代碼。對於Android,它包括擴展CordovaPlugin
類和覆蓋方法execute
(例如:cordova-plugin-splashscreen)。
由cordova build
生成的.apk(android)或.ipa(iOS)(如果您使用cordova-cli)將本機shell(用於Android的cordova-android,用於iOS的cordova-ios)和您的Web應用程序。在啓動時,Cordova的主要活動/視圖被實例化,加載webview,它自己加載你的webapp。
是的,看我的編輯,讓我知道,如果它更清楚。 – VinceOPS
謝謝,這是一個很好的信息。最後一個問題,我使用npm安裝了cordova,但是我沒有看到任何'native'可執行文件(dll),我只看到一堆javascripts。它位於窗戶的哪裏? –
@ZammyPage cordova CLI是用JavaScript編寫的,這就是爲什麼你不會找到任何可執行文件。 Node.js負責執行此JavaScript代碼:)。 – VinceOPS