2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Ionic Capacitor:使用 JavaScript 开发原生应用

  • 2019-07-07
  • 本文字数:912 字

    阅读完需:约 3 分钟

Ionic Capacitor:使用 JavaScript 开发原生应用

CapacitorIonic给出的一种混合应用开发新框架,可替代自 2009 年提出以来就广为使用的Apache Cordova解决方案。


Ionic 决定创建该替代 Cordova 的解决方案,主要出于两个方面的考虑。一是 Cordova 的插件系统已经落后于时代,二是 Cordova 管理原生平台的方法存在局限。


Cordova 和 Capacitor 都提供了插件系统,支持 JavaScript 和蓝牙、RFID 等原生平台间的通信功能。Cordova 插件系统近些年一直在尽力跟上最新的技术发展。


其中一个很好的例子是针对Swift语言。该语言由苹果公司在 2014 年提出,但是直到 2019 年才具有 Cordova 插件(虽然更早由第三方提供了支持 Swift 的插件)。


落伍的插件系统损害了整个生态系统,尤其是当生态系统严重依赖于第三方插件时。


Capacitor 插件系统提供更直观的开发过程,支持最新的技术。


由于 Capacitor 插件生态系统的规模相对还比较小,目前开发人员可在 Capacitor 中使用大多数 Cordova 插件。但这种兼容只是临时的解决方案,意在确保开发人员可获取主要的平台特性。


Capacitor 为行业带来的第二个变革是原生项目管理。Cordova 在构建时生成原生平台代码。开发人员使用包含构建应用指令的共享配置文件,该文件进而被 Cordova 的原生构建过程使用。此方法虽然简化了构建过程,但代价是导致原生项目访问受限。


虽然 Cordova 提供的解决方案易于使用,也适用于一些小型项目,但那些更大、更复杂的项目对此提出了挑战。此类项目通常需要对原生项目代码和配置拥有更大的控制权。


为了解决该问题,Ionic Capacitor 采用了一种降低侵入性、增加灵活性的方法。 Capacitor 为原生平台生成并同步 JavaScript 代码,并要求开发人员直接管理原生平台代码。这样的原生代码管理需要开发人员做一些额外的工作,但可以更好地控制项目的原生特性。


Cordova 和 Capacitor 的应用范围均已扩展到移动应用开发之外,现在支持(使用 Electron)创建 PWA 和桌面应用。尽管相比二者对混合移动应用开发的支持,对这些功能的支持尚不完备。


Ionic Capacitor是遵循 MIT 许可的开源软件。欢迎依据“Capacitor贡献者指南”对项目做出贡献。贡献者也需要遵循“Capacitor行为准则”。


原文链接:


Ionic Capacitor: Creating Native Applications with JavaScript


2019-07-07 08:006342
用户头像

发布了 391 篇内容, 共 155.5 次阅读, 收获喜欢 257 次。

关注

评论

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

架构实战营模块一作业

东尼大锤

ESP32-C3入门教程 基础篇(六、TIMG 硬件定时器 与 软件定时器)

矜辰所致

软件定时器 ESP32-C3 9月月更

Python语法之列表

芯动大师

列表 元素 9月月更

【云原生 | 从零开始学 Kubernetes】三、Kubernetes集群管理工具kubectl

泡泡

Docker 云计算 云原生 k8s 9月月更

易观千帆联合《扬子晚报》发布苏州市手机银行应用活跃人数榜单

易观分析

金融 手机银行 苏州

客户说你的 SaaS 产品不好用怎么办?

产品海豚湾

产品经理 SaaS 客户关系管理 产品运营 9月月更

Spring事务角色与事务属性

十八岁讨厌编程

Java 后端开发 9月月更

Python语法之流程控制

芯动大师

流程控制 9月月更 嵌套

Chrome操作指南——入门篇(九)调试小技巧

Augus

Chrome开发者工具 9月月更

【云原生 | 从零开始学Kubernetes】四、Kubernetes之YAML文件详解

泡泡

云计算 云原生 k8s 9月月更

Python语法之循环

芯动大师

Python 9月月更 循环控制

多维分析利器Druid

穿过生命散发芬芳

Druid 9月月更

2022-09-22:以下go语言代码输出什么?A:5、B:不能编译;C:运行时死锁。 package main import ( “fmt“ “time“ ) func main

福大大架构师每日一题

golang 福大大 选择题

中移链DDC-SDK技术对接全流程(三)

BSN研习社

数字化转型趋势|汽车电子软件开发工具链必看

laofo

DevOps cicd 研发效能 持续交付 DevOps工具链

SpringMVC初识

十八岁讨厌编程

Java 后端开发 9月月更

网安超基础一周目

吉师职业混子

9月月更

常用的注册中心以及他们的对比

想要飞的猪

zookeeper nacos Eureka

C++学习---__gen_tempname函数原理分析学习

桑榆

c++ 源码分析 9月月更

ShareSDK Uni-app 插件

MobTech袤博科技

uni-app ios android

Web3.0杂谈-#002(48/100)

hackstoic

Web3.0

Spring事务管理

十八岁讨厌编程

Java 后端开发 9月月更

FaissPQ索引简介

转转技术团队

深度学习 Faiss 向量计算

赛事升级,烽烟正燃!网易云信 Innovation 2022 开发者大赛等你参加!

网易智企

开发者大赛

JavaWeb核心之ServletConfig

楠羽

Servlet 笔记 9月月更

异常场景测试

转转技术团队

测试方案 异常测试 用例设计

ESP32-C3入门教程 基础篇(七、LEDC — LED PWM 控制器)

矜辰所致

pwm ESP32-C3 9月月更

【Kafka】编译 Kafka 源码并搭建源码环

石臻臻的杂货铺

kafka 9月月更

Hybrid App会靠小程序崛起吗

Geek_99967b

小程序

Chrome操作指南——入门篇(十)调试小技巧

Augus

Chrome开发者工具 9月月更

如何避免这10类常见故障?B站数据库架构设计做了这5步……|TakinTalks稳定性社区

TakinTalks稳定性社区

数据库治理 故障治理

Ionic Capacitor:使用 JavaScript 开发原生应用_大前端_Guy Nesher_InfoQ精选文章