移动系统编程-安装和运行Ionic应用程序 (Installation and Running Ionic Apps)

安装 (Installation)

        假设您已经安装了Node.js和Angular,您可以使用以下命令安装Ionic:

npm install -g @ionic/cli

        您也可以不使用CLI安装Ionic,但如果您使用的是最新版本的Cordova,这样做可能会导致版本不匹配,不推荐这样做。

npm install -g ionic

        请注意,这个命令同时安装了Cordova和Ionic。Ionic需要Cordova,但我们将在教程中进一步讨论Cordova。

        我们可以通过克隆tabs起始项目来创建一个名为ionic1的新项目,方法如下:

ionic start ionic1 tabs

        在创建过程中,您可能会被问到两个问题。这两个问题是最近添加的,所以在您阅读本文时可能有所不同。第一个问题是:

Would you like to integrate your new app with Cordova to target native iOS and Android?

        回答“是”。这将允许我们在iOS和Android模拟器或实际设备上运行应用程序。在您阅读本文时,这个问题可能不存在。

Install the free Ionic Pro SDK and connect your app?

        回答“否”。如果您希望尝试,可以回答“是”,但在这个阶段,这是一个新产品,笔记中未集成。

        请注意,由于Ionic正在迅速发展,可能会有其他问题。您应该选择旧的选项(那些无聊的选项),因为这样会减少出现奇怪错误的可能性。

        当完成这些步骤后,我们就可以开始一个Ionic项目了。Ionic框架还衍生出了一个界面模板市场,您可以克隆并使用这些模板作为您自己应用程序的基础。对于本单元,您不需要购买界面,但您应该了解这对商业应用可能有用。

        我们以类似于Angular项目的方式开始开发项目。请注意,这安装的内容比Angular克隆操作还要多,体积也相当大。您可能会发现,通过复制和重命名目录而不是从云端复制来克隆其他项目更为快捷。

        请参阅以下链接了解Ionic安装的最新信息: How to Install The Ionic Framework CLI to Build Mobile Apps

        要启动Ionic开发环境,我们首先需要将默认目录更改为新项目文件夹,并使用ionic serve命令在浏览器中运行项目:

cd ionic1
ionic serve

        这将启动项目,并应在浏览器中打开一个窗口。以下图片是一个Chrome浏览器窗口,调整大小以模拟小型移动设备。

        我们还可以在Android模拟器或真实的Android设备上运行应用程序。这需要两个步骤,首先我们必须使用Cordova命令添加Android平台,然后运行应用程序。可以通过以下命令实现:

ionic cordova platform add android
ionic cordova emulate android

        模拟器环境安装教程:Android Studio安卓手机模拟器环境搭建_android studio 模拟器-CSDN博客

        这将在模拟器中运行应用程序,您需要在计算机上运行模拟器。有很多运行模拟器的选项,但我们将在在线课程中查看标准的Android模拟器(来自Google)。上面的应用程序在下面的Android 6.0模拟器图片中显示。

请注意,服务器不会在模拟器中运行应用程序。每次运行emulate命令时,都是一次性的安装。因此,最好在浏览器中调试您的应用程序,然后再在模拟器中运行。

如果您有一台连接到计算机的真实Android设备,那么您也可以以类似于Cordova运行命令的方式使用run命令。

ionic run android

        您的真实设备可能需要配置为开发模式或调试模式。虽然这有时是默认情况,但您可能需要参考设备手册以了解如何设置此配置。

        最后要注意的是计算机上Ionic应用程序代码的结构。这将在下一节中解释。以下活动将要求您修改一个页面,以便您可以看到服务器的运行情况。

Ionic应用程序结构 (Ionic App Structure)

        Ionic应用程序结构与Angular结构非常相似。这是自然的,因为Ionic基于Angular。但是,它也是基于Cordova的,所以Cordova的结构也被叠加上了。

        我们将展示克隆的tabs应用程序在计算机上的结构,以解释文件布局。以下是应用程序的根目录。

        这些文件是配置文件,我们不需要更改太多。JSON格式允许编辑我们应用程序的各种选项及其在测试环境中的运行方式。各个文件的用途如下:

  1. node_modules文件夹应该是我们在进行Angular编码时熟悉的。它包含了我们安装的各种应用程序的Angular及其他代码。我们不会触碰这个文件夹,您应该注意到这是一个非常大的文件夹,包含了所有库,无论我们是否使用它们。需要注意的是,这个目录是用于开发的,当应用程序部署时,只会部署应用程序使用的库。
  2. src文件夹包含了Ionic、Angular及其他用途的TypeScript代码。我们在这里编辑我们的Ionic应用程序,所以熟悉这个文件夹的结构和内容是很重要的。
  3. 文件夹中的单个文件是开发和测试系统使用的配置文件。通常,我们不会触及这些文件,但会在教程课程中修改一些文件。

        如前所述,主要是src文件夹需要更改,因为这是我们应用程序的源代码。对于tabs应用程序,初次克隆时,它包含以下文件:

        在这个文件夹中,目录的用途如下:

  1. app文件夹是我们为应用程序编辑的熟悉的Angular应用程序代码。
  2. assets文件夹是我们用于应用程序的媒体资产。通常,我们只是将媒体资源文件放在这个文件夹中,并通过我们的源代码访问它们。
  3. theme文件夹包含了操作我们应用程序外观的SCSS代码。在本单元中,我们不会经常使用它,而是依赖于默认的Ionic主题(外观)。
  4. 我们不会编辑单个文件。

        SCSS文件包含了Sass格式化的代码。Sass(Syntactically Awesome Style Sheets)是标准CSS的一个超集,编译为CSS以分发到浏览器和其他HTML5容器中。它的实现类似于将TypeScript作为JavaScript的一个超集。在本单元中,我们没有时间深入讨论Sass的细节。

        如您所见,这个结构相当复杂。但是,对于本单元,我们将自己限制在生成Ionic代码的app文件夹。当我们部署代码时,许多文件夹和文件不会被复制到设备中。此外,部署过程通常是自动化的,所以我们不必担心哪些文件和文件夹是运行应用程序所必需的。

活动

        访问以下URL以找到应用程序结构的描述。

Project Structure - Tutorial

        阅读页面内容。请注意,我们将在教程课程中更详细地研究这个问题。

  1. 根据您的Angular经验,<ion-app>标签用于什么?

    回答<ion-app>标签是Ionic应用程序的根组件,它封装了整个应用程序的内容,类似于Angular中的<app-root>标签。

  2. 您能看到./src/app/app.html(请注意文件扩展名)用于什么吗?Ionic广泛使用这种类型的文件。

    回答./src/app/app.html文件是Ionic应用程序的主模板文件,它定义了应用程序的主视图结构和内容。

  3. Ionic为其所有特定的代码使用了一个标签前缀。这个前缀是什么?(简单问题)

    回答:Ionic使用的标签前缀是ion-

        如果您收到有关Capacitor的错误,请在Ionic项目文件夹内的命令行工具中运行以下两个命令以禁用Capacitor并添加Cordova构建器:

ionic integrations disable capacitor ng add @ionic/cordova-builders

        还要运行这些命令以安装Cordova和Native run:

npm install -g native-run npm install -g cordova

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用幻灯片讲解C++中的C语言风格数组

用幻灯片讲解C中的C语言风格数组 1.栈内存中的C风格数组 糟糕的可用性&#xff0c;但你将在遗留代码中看到它们。相同类型的对象块。大小必须是常量表达式。第一个元素的索引为0&#xff0c;即数组索引从0开始。 注意一下数组的初始化&#xff0c;使用了C11标准之后的统一初始…

回溯算法 -- 77. 组合

目录 一.题目描述 二.解题思路 三.回溯三部曲 3.1确定递归函数的返回值以及参数 3.2回溯算法的终止条件 3.3确定单层循环搜索逻辑 四.具体的代码 一.题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案…

软件开发整体介绍

黑马程序员瑞吉外卖 文章目录 一、软件开发流程二、角色分工三、软件环境 一、软件开发流程 二、角色分工 三、软件环境

MySQL—函数—流程控制函数(基础)

一、引言 接下来&#xff0c;我们就进入函数的最后一个部分&#xff1a;流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中&#xff0c;经常用来实现条件的筛选&#xff0c;从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…

第十五课,海龟画图:抬笔与落笔函数、画曲线函数

一&#xff0c;turtle.penup()和turtle.pendown()&#xff1a;抬起与落下画笔函数 当使用上节课学习的这个turtle.forward()&#xff1a;画笔前进函数时&#xff0c;画笔会朝着当前方向在画布上留下一条指定&#xff08;像素&#xff09;长度的直线&#xff0c;但你可能发现&a…

自动微分技术在 AI for science 中的应用

本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力&#xff0c;人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如&#xff0c;大部分图神经网络均基于消息传递的架构。在推理…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文解析的原始论文为&#xff1a;https://arxiv.org/…

有容微ASW3642 HDMI或者DP双向切换器,二进一出,一进二出支持4K60HZ分辨率

ASW3642描述&#xff1a; ASW3642 是一款 12 通道 1:2 或 2:1 双向多路复 用器/ 多路解复用器。 ASW3642 可由 2.6V 至 4.5V 的电源供电&#xff0c;适用于电池供电的应用。该器 件的导通电阻&#xff08;R ON &#xff09;较低并且 I/O 电容较小&#xff0c; 能…

Nginx配置详细解释:(1)全局配置

自启动安装nginx:前面博客有解释 systemctl stop firewalld setenforce 0 [rootNode1 ~]#:mkdir /data [rootNode1 ~]#:cd /data [rootNode1 data]#:yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel [rootNode1 data]#:wget http://nginx.o…

JMeter工具介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录&#xff1a;存放可执行文件和配置文件 Docs目录&#xff1a;是Jmeter的API文档&#xff0c;用于开发扩展组件 printable_docs目录&#xff1a;用户帮助手册 lib目录&#xff1a;存放JMeter依赖的jar包和用户扩展所依赖的Jar包 修…

linux mtd分区应用操作sample之某分区擦除

什么是擦除? 把flash相关的区域数据bit置为1的过程 #include <mtd/mtd-user.h> #include <mtd/mtd-abi.h> struct erase_info_user {__u32 start; // 起点 __u32 length; //长度 块大小对齐 不然报参数失败 };struct erase_info_user64 {__u64 sta…

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

文章目录 一、wandb简介二、wandb注册与登陆&#xff08;网页&#xff09; —— 若登录&#xff0c;则支持在线功能三、wandb安装与登陆&#xff08;命令行&#xff09; —— 若不登录&#xff0c;则只保留离线功能四、函数详解4.1、wandb.init() —— 初始化一个新的 wandb 实…

Vivado的两种下载安装方式:Webpack下载与安装、本地文件安装详细步骤讲解

目录 1.前言2. Vivado Webpack下载、安装3.本地文件下载安装 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 本人自本科大二开始接触FPGA相关知识&#xff0c;现已将近六年&#xff0c;由于一直在上学&#xff0c;也不是一直在搞FPGA&#xff0c;但是也完成过一些项目…

【线性表】顺序存储和链式存储的实现

文章目录 顺序存储链式存储单向链表循环链表 线性表的定义 (1)概念定义&#xff1a;用数据元素的有限序列表示叫做线性表&#xff1b;线性表中数据元素的类型可以为简单类型&#xff0c;也可以为复杂类型。许多实际应用问题所涉的基本操作有很大相似性&#xff0c;不应为每个具…

Day02 设计首页导航条

设计首页导航条 导航条的样式&#xff0c;主要是从Material DesignThemes UI 拷贝过来修改的,项目用了这个UI组件库。就看项目需要什么&#xff0c;就去源码拷过来使用。 直接下载源码&#xff0c;编译运行就可以看到Demo 了 下载后且正常编译成功了&#xff0c;是能正常跑起来…

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图 废话不多说&#xff0c;今天给大家分享一个&#xff0c;使用python绘制小提琴图、箱形图、散点图、山脊图和柱状图等等 图中的数据是随机生成的&#xff0c;图例&#xff0c;图注以及坐标题目各种信息&a…

javascript之对象属性配置

属性标志&#xff1a; 介绍&#xff1a; 对象属性&#xff0c;除 value 外&#xff0c;还有三个特殊的特性&#xff0c;也就是所谓的“标志”&#xff1a; 属性truefalsewritable值可以被修改只可读的enumerable被在循环中列出不会被列出configurable此属性可以被删除/修改 不可…

从头开始构建GPT标记器

从头开始构建GPT标记器 对于GPT Tokenizer&#xff0c;论文《Language Models are Unsupervised Multitask Learners》中介绍了一种字节级编码作为LLM的标记化机制&#xff1a; The vocabulary is expanded to 50,257. We also increase the context size from 512 to 1024 to…

python3.8环境下安装pyqt5

1.实验目的 测试python可视化工具包pyqt5,为后期做系统前端页面做铺垫 2.实验环境 1.软件 anaconda2.5 pycharm2024.1.1 pyqt5 2.硬件 GPU 4070TI Intel I7 1400K 3. 安装步骤 (base) C:\Users\PC>conda -V conda 23.7.4(base) C:\Users\PC>conda create qttest p…

基于卷积-小波神经网络的SAR图像海冰变化检测方法(MATLAB R2018A)

海冰是冰冻圈的重要组成部分&#xff0c;海冰的变化信息对航行安全和自然资源开采等非常重要&#xff0c;许多船舶没有加固防冰设备&#xff0c;因此&#xff0c;必须避开所有的冰区。尤其当冰压很高时&#xff0c;即使破冰船也很难在冰层中前行。为了安全航行&#xff0c;获取…