Ionic+Capacitor 创建混合APP

一、介绍

Capacitor是由ionic团队开发的一款跨平台移动应用构建工具,可轻让我们轻松的构建Android、iOS、Electron和Web应用程序。 其前身为Apache Cordova和Adobe PhoneGap。

Capacitor 允许前段开发这像开发前段应用程序一样开发移动APP,他会将我们写的html css js打包到原生APP中,形成独立的App程序,可以在各应用商店发布。Capacitor官方也给我们提供了常见的Api插件,并且支持用户自己开发插件。作为Cordova的继承者,在Capacitor工程中,当然也可以使用Cordova插件。

二、创建混合APP

  1. 安装nodejs

直接从官网下载,建议安装最细稳定版本:https://nodejs.org/en/

安装成功后,终端执行 node -v 查看安装的版本

node -v
v18.14.1

npm -v
9.3.1

2.安装Ionic

npm install -g @ionic/cli

ionic -v
6.20.8

备注: Ionic 默认安装的是最新版本,可以在命令后加上版本号,安装制定版本,但是由于版本匹配问题,建议默认都安装最新的。

ionic 6.x 之后的版本默认你开启了Capacitor支持,所使用起来更方便。

3.创建Ionic工程

1)在终端执行命令

ionic start myApp tabs

命令格式: ionic start 工程名称 模板名称

2)选择前端框架

Pick a framework! 😁

Please select the JavaScript framework to use for your new app. To bypass this prompt next time, supply a value for the
--type option.

? Framework: 
  Angular | https://angular.io 
  React   | https://reactjs.org 
❯ Vue     | https://vuejs.org 

备注:新版本ionic 支持 angular、react和vue三种框架,选择适合自己的就行。在创建过程中会提示是否创建ionic社区账号,选择不创建就可以。

3)ionic工程创建完成

ionic工程创建完成后,终端会有如下输出:


? Create free Ionic account? No

Your Ionic app is ready! Follow these next steps:

- Go to your new project: cd ./myApp
- Run ionic serve within the app directory to see your app in the browser
- Run ionic capacitor add to add a native iOS or Android project using Capacitor
- Generate your app icon and splash screens using cordova-res --skip-config --copy
- Explore the Ionic docs for components, tutorials, and more: https://ion.link/docs
- Building an enterprise app? Ionic has Enterprise Support and Features: https://ion.link/enterprise-edition

4、添加Android 和IOS原生工程

1)配置 app 名称和 包名

cd myApp
npx cap init [appName] [appId]

命令格式 : npx cap init 应用名称 应用包名

备注: 执行过程中可能报以下错误,按照提示删除 capacitor.config.ts,重新执行即可。

[error] Cannot run init for a project using a non-JSON configuration file.
        Delete capacitor.config.ts and try again.

2)执行命令,添加Android 和ios 工程

npm install @capacitor/ios
npm install @capacitor/android

npx cap add ios
npx cap add android

执行成功后,myApp 目录下,会多出 android 和 ios 文件夹,分别对应Android 和IOS 的原生APP工程。

5、编译前端代码

执行命令:

npm run build

或者:

ionic build

6、同步前端代码到原生工程中。

执行命令:

npx cap copy

同步成功终端输出如下:

✔ Copying web assets from public to android/app/src/main/assets/public in 7.14ms
✔ Creating capacitor.config.json in android/app/src/main/assets in 1.01ms
✔ copy android in 23.28ms
✔ Copying web assets from public to ios/App/App/public in 3.78ms
✔ Creating capacitor.config.json in ios/App/App in 271.84μs
✔ copy ios in 13.92ms
✔ copy web in 4.17ms

备注:

每次修改玩前端代码,都需要重新执行 ionic build 和 npx cap copy,否则无法将修改同步到原生APP中进行打包。

7、编译Android 或者IOS 应用包。

执行命令:

npx cap open ios   // 打开 xcode编译IOS app
npx cap open android   // 打开 Android Studio 编译Android apk
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular是一个流行的JavaScript框架,用于构建Web应用程序。Ionic是基于Angular的开源移动应用开发框架,它提供了一套UI组件和具,帮助开发者构建跨平台的移动应用程序。 Swiper是一个流行的移动端滑动组件库,它提供了丰富的滑动效果和交互功能,可以用于创建漂亮的轮播图、图片浏览器等。 结合Angular和Ionic,你可以轻松地集成Swiper组件到你的移动应用中。首先,你需要在你的Angular项目中安装Swiper组件库。可以使用npm命令来安装: ``` npm install swiper --save``` 安装完成后,你可以在你的Ionic组件中引入Swiper组件,并在模板中使用它。以下是一个简单的示例: ```typescriptimport { Component } from '@angular/core'; import SwiperCore, { Navigation, Pagination } from 'swiper/core'; SwiperCore.use([Navigation, Pagination]); @Component({ selector: 'app-swiper', template: ` <swiper [navigation]="true" [pagination]="true"> <ng-template swiperSlide>Slide1</ng-template> <ng-template swiperSlide>Slide2</ng-template> <ng-template swiperSlide>Slide3</ng-template> </swiper> `, }) export class SwiperComponent {} ``` 在上面的示例中,我们首先引入了Swiper组件库,并注册了所需的Swiper模块(例如Navigation和Pagination)。然后,在组件的模板中,我们使用`<swiper>`标签创建了一个Swiper实例,并在内部添加了三个滑动的内容块。 你可以根据你的需求自定义Swiper的配置和样式。更多关于Swiper的用法和配置,你可以参考Swiper官方文档。 希望这可以帮助到你!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值