装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

Capacitor 1.0 发布:让混合应用程序开发变得更容易

  • 2019-05-31
  • 本文字数:992 字

    阅读完需:约 3 分钟

Capacitor 1.0发布:让混合应用程序开发变得更容易

Ionic 的新原生 API 容器Capacitor发布了1.0版本。这个容器旨在使用 JavaScript 创建 iOS、Android 和 Web 应用程序,为构建可访问原生特性的跨平台应用程序带来了新的视角。


Cordova类似,Capacitor 的目标是在不需要编写平台特定代码的情况下访问底层操作系统的原生特性,这使得在 iOS、Android 和 Electron 应用程序中使用相同代码访问设备摄像头成为可能。Capacitor 采用了一种完全不同的方法将 HTML/CSS/JavaScript 应用程序运行在原生 Web 视图中,并通过统一的接口将原生功能暴露给应用程序。


与 Cordova 的一个主要区别是 Capacitor 要求开发人员处理原生应用程序项目,包括运行 Ionic 应用程序的 Web View,将其作为 Capacitor 应用程序的一个组件,而不是反过来。这种方法使得集成外部 SDK(在 iOS 上可能需要调整 AppDelegate)变得更加容易,并且无需编写插件就可以原生地功能集成到 Ionic 应用程序中,就像 Cordova 一样。


Capacitor 的另一个好处是它不再需要监听deviceready事件。Capacitor 会在加载 Ionic 应用程序之前加载所有插件,所以它们是立即可用的。此外,Capacitor 插件公开了可调用的方法,所以开发者不需要使用 exec。例如,下面是一个非常简单的 iOS Capacitor 插件,一个扩展了 CAPPlugin 的 Swift 类:


import Capacitor
@objc(MyPlugin)public class MyPlugin: CAPPlugin { @objc func echo(_ call: CAPPluginCall) { let value = call.getString("value") ?? "" call.resolve([ "value": value ]) }}
复制代码


要使插件的 echo 方法直接对 Capacitor Web 运行时可用,需要在.m 文件中注册它:


#import <Capacitor/Capacitor.h>
CAP_PLUGIN(MyPlugin, "MyPlugin", CAP_PLUGIN_METHOD(echo, CAPPluginReturnPromise);)
复制代码


Capacitor 使用 npm 进行依赖关系管理,包括插件和平台。因此,如果你需要使用插件,只需像往常一样运行 npm install。而在使用 Cordova 时,你需要使用 cordova plugin add…命令。作为一个额外的简化,Capacitor 要求将 iOS 插件的原生组件打包成 CocoaPod,对于 Android 来说可以作为一个独立的库使用。


最后,Ionic 官方称,Capacitor 最终将取代 Cordova,成为 Ionic 应用程序容器化的官方方式,这样它们就可以跨平台访问原生特性,但在未来几年内,Cordvoa 仍然会有人提供支持。


查看英文原文Capacitor 1.0 Aims to Improve the Creation of Hybrid, Web, and Native Apps


2019-05-31 08:0010744
用户头像

发布了 731 篇内容, 共 405.6 次阅读, 收获喜欢 1966 次。

关注

评论

发布
暂无评论
发现更多内容

线程与线程池的那些事之线程篇

秦怀杂货店

Java 线程 多线程 进程 并发

父母为什么催婚,而你又在逃避什么

小天同学

婚姻 爱情 5月日更

520节日快乐

IT蜗壳-Tango

5月日更

520,珍惜眼前人

数据社

520 520单身福利 520 单身福利

音频均衡器EQ

floer rivor

音视频 Eq

这一次,彻底搞懂 Go Cond

HHFCodeRv

Go 语言

CMMI V2.0丨如何通过CMMI真正在企业中的实施规模化敏捷开发

渠成CMMI

软件 研发管理 CMMI

从技术趋势看质量赋能

BY林子

敏捷 软件测试 质量赋能

Dubbo 延迟与粘滞连接

青年IT男

dubbo

浪潮云洲链斩获2020-2021年度新一代信息技术创新产品殊荣

浪潮云

Nginx基础配置-反向代理

梁龙先森

nginx 大前端

Golang function

escray

学习 极客时间 Go 语言 5月日更

PKI系统简介

上海派拉基础研发

CA PKI

拥有5大核心竞争力的华为云GaussDB,成SACC2021最靓那一个…

华为云开发者联盟

数据库 华为云 GaussDB 存算分离 GaussDB(for Redis)

聊聊dubbo协议

捉虫大师

高并发调优backlog多大合适?

运维研习社

nginx 运维 5月日更 并发调优

【epoll】epoll多路复用和Reactor设计思想

Linux服务器开发

后端 网络编程 C/C++ epoll Linux服务器开发

【偶尔一道ctf】xctf adword mobile easy-apk

Thrash

写给大神

小梨蕊

情人节 520单身福利 520 单身福利

架构学习笔记:复杂度来源

六维

5月日更 架构复杂度

❤【520特别祝福篇】愿有情人终成眷属,已成眷属爱情稳固

洛神灬殇

爱情 5月日更 520单身福利 520 单身福利

Flutter开发:Another exception was thrown:Unable to load asset:…的解决方法

三掌柜

5月日更

数据挖掘从入门到放弃(七):TensorFlow和keras实现线性回归LinearRegression

数据社

机器学习 5月日更

产品思维

lenka

5月日更

高性能 JavaScriptの笔记(四)

空城机

JavaScript 大前端 5月日更

珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)

刘悦的技术博客

Java vscode spring Boot Starter JDK11 m1

为什么“放弃”?

Nydia

学习

造车潮

ES_her0

5月日更

数据预处理&特征工程

Qien Z.

Python 5月日更

Hadoop定位问题日志跟踪

InfoQ_Springup

hadoop

保障实时音视频服务体验,华为云原生媒体网络有7大秘籍

华为云开发者联盟

云原生 音视频 华为云 媒体网络 架构分层

Capacitor 1.0发布:让混合应用程序开发变得更容易_运维_Sergio De Simone_InfoQ精选文章