2017-02-20 84 views
0

我試圖找出Apache Cordova & Ionic Framework是如何工作的?Apache Cordova和離子框架如何與原生相互作用?

我找遍了互聯網,我得到的是, 它是圍繞HTML/CSS/JS的包裝,並使用本地Web視圖與原生功能進行交互。但是,您仍然部署本機。 (這意味着apk文件爲的Android,例如)

但是,我感興趣的是

  • 是Apache的科爾多瓦和離子框架完全用JavaScript編寫的?
  • 他們如何與原生移動平臺進行交互?
  • cordova/ionic是否與.apk文件綁定到在本機網頁視圖和源代碼之間調解

我相信我對低等級細節位感興趣。 如果有人能夠點亮或指向我的資源(我找不到),那就太好了。

謝謝。

回答

3

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。

+0

是的,看我的編輯,讓我知道,如果它更清楚。 – VinceOPS

+0

謝謝,這是一個很好的信息。最後一個問題,我使用npm安裝了cordova,但是我沒有看到任何'native'可執行文件(dll),我只看到一堆javascripts。它位於窗戶的哪裏? –

+0

@ZammyPage cordova CLI是用JavaScript編寫的,這就是爲什麼你不會找到任何可執行文件。 Node.js負責執行此JavaScript代碼:)。 – VinceOPS