繁体   English   中英

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

[英]How does Apache Cordova and ionic framework interact native-ly?

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

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

但是,我感兴趣的是

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

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

谢谢。

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。 由于平台特定的“桥”(内置在cordova-android,cordova-ios,cordova-windows中的本机代码允许),因此webview可以与您的Web应用程序(当然)以及本机代码进行交互。 必须编写一个插件才能从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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM