Apache Cordova和离子框架如何进行本地交互?

Zam*_*age 0 javascript android cordova ionic-framework

我试图找出Apache Cordova和Ionic Framework如何工作?

我在互联网上搜索了所有信息,它是html / css / js的包装,并且使用本机Web视图与本机功能进行交互。但是,您仍然部署本机。(例如,对于Android来说就是.apk )

但是,我感兴趣的是

  • Apache Cordova和Ionic Framework是否完全用javascript编写?
  • 他们如何与本地移动平台进行交互?
  • Cordova / ionic是否与.apk文件捆绑在一起以在本机Web视图和源代码之间进行中介

我相信我对一些底层细节感兴趣。如果有人可以阐明或指出我的资源(我找不到),那就太好了。

谢谢。

Vin*_*OPS 5

Apache Cordova提供了一个基本的本机应用程序,负责:

  • 显示一个Webview(iOS上默认为UIWebkit,但您可以使用插件切换到WKWebkit 。对于Android,“ Android浏览器” Webview 最多可用于Android 4.4。从Android 5(API 21)开始,该Webview基本上是Chrome for Android)。
  • 多亏了Cordova 插件,允许运行此Web视图的JavaScript“调用”(执行)本机代码。这是可能的,因为系统Web视图可以与本机代码交互。

Ionic Framework(v1)由HTML,JavaScript和CSS组成(v2在TypeScript中开发,TypeScript是JavaScript的类型化超集)。版本1依赖于AngularJS作为前端JavaScript框架,并通过提供手势管理,无限滚动,布局(菜单,选项卡,列表...)等功能,帮助开发人员编写“原生” webapp。版本2依赖于Angular 2并提供了其他组件(日期选择器,拆分面板...)和功能(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 Cordova由JavaScript和本机代码组成。查看诸如cordova-android(JavaScript + Java),cordova-ios(JavaScript + Objective-C)之类的项目。每个移动操作系统都有一个专用的“平台”。在大多数情况下,启动新的Cordova项目时,您要做的第一个操作是cordova platform add <platform>(iOS,Android ...)。这些是正在加载的代码。Ionic Framework是由HTML,JavaScript和CSS组成的“纯Web”框架。

  • Apache Cordova使用任何本机应用程序与本机移动平台进行交互:使用系统API。借助特定于平台的“桥梁”,webview可以与您的Web应用程序(当然)以及本机代码进行交互(cordova-android,cordova-ios,cordova-windows中嵌入的本机代码允许)。您必须编写一个插件才能从JavaScript调用本机代码。对于Android,它包括扩展CordovaPlugin类并覆盖方法execute(例如:cordova-plugin-splashscreen)。

  • cordova build(如果您使用cordova-cli)生成的.apk(android)或.ipa(iOS)将本机外壳(Android的cordova-android,iOS的cordova-ios)收集在一起。启动时,将实例化Cordova的主要活动/视图,并加载webview,该webview本身也将加载webapp。

  • 如果您确实在cordova项目中运行了“ cordova platform add android”,则可以在platform / android / CordovaLib和platform / android / src中找到.java文件(iOS的路径或多或少都相似,带有.m和.h文件(目标C))。 (2认同)