移动系统编程-安装和运行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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【技术实操】银河高级服务器操作系统实例分享,数据库日志文件属主不对问题分析

1. 问题现象描述 2023 年 06 月 30 日在迁移数据库过程中&#xff0c;遇到数据库 crash 的缺陷&#xff0c;原因如下&#xff1a;在数据库启动时候生成的一组临时文件中&#xff0c;有 owner 为 root 的文件&#xff0c; 文件权限默认为 640&#xff0c; 当数据库需要使用的时…

高速服务区智慧公厕管理系统引导屏UI界面展示

在现代社会&#xff0c;高速服务区作为人们出行途中的重要休憩场所&#xff0c;其各项设施的智能化水平也在不断提升。其中&#xff0c;智慧公厕管理系统的出现&#xff0c;为人们带来了更加便捷、舒适的如厕体验&#xff0c;而引导屏 UI 界面更是这一系统的重要展示窗口。 智慧…

Python | Leetcode Python题解之第126题单词接龙II

题目&#xff1a; 题解&#xff1a; class Solution:def findLadders(self, beginWord: str, endWord: str, wordList: List[str]) -> List[List[str]]:ans []if endWord not in wordList:return anssize len(beginWord)cur_word_set {beginWord}ws set(wordList)# 用于…

WPF Binding对象、数据校验、数据转换

在WinForm中&#xff0c;我们要想对控件赋值&#xff0c;需要在后台代码中拿到控件对象进行操作&#xff0c;这种赋值形式&#xff0c;从根本上是无法实现界面与逻辑分离的。 在WPF中&#xff0c;微软引入了Binding对象&#xff0c;通过Binding&#xff0c;我们可以直接将控件与…

CSS双飞翼布局

双飞翼布局是一种经典的CSS布局模式&#xff0c;主要用于实现左右两列固定宽度&#xff0c;中间列自适应的布局。 比如&#xff1a;写一个左中右布局占满全屏&#xff0c;其中左、右两块固定宽 200px&#xff0c;中间自适应&#xff0c;要求先加载中间块。 <!DOCTYPE html…

启动u盘恢复成普通u盘

DiskUtility&#xff08;磁盘工具&#xff09;恢复可启动U盘为普通存储设备。点击顶部菜单栏的"抹掉"按钮。 u盘启动盘怎么恢复成u盘

如何使用Dora SDK完成Fragment流式切换和非流式切换

我想大家对Fragment都不陌生&#xff0c;它作为界面碎片被使用在Activity中&#xff0c;如果只是更换Activity中的一小部分界面&#xff0c;是没有必要再重新打开一个新的Activity的。有时&#xff0c;即使要更换完整的UI布局&#xff0c;也可以使用Fragment来切换界面。 何…

Vue3实战笔记(59)—从零开始掌握Vue3插槽机制,进阶与提高

文章目录 前言一、具名插槽二、高级列表组件示例总结 前言 接上文&#xff0c;接下来看一点稍微复杂的&#xff1a;具名插槽 一、具名插槽 子组件 MyComponent.vue&#xff1a; <template><div><slot name"header"></slot><slot><…

点到线段的最短矩离 及垂足的计算

过P做MN的垂线&#xff0c;垂足为Q&#xff0c;若Q在线段MN以内(包括与点M点N重合)&#xff0c;则最短距离为垂线段长度&#xff0c;若垂足在MN以外&#xff0c;则最短距离为PM&#xff0c;PN中的较小者。&#xff08;若P与MN共线&#xff0c;垂线长度为零&#xff0c;同样适用…

[机器学习] 低代码机器学习工具PyCaret库使用指北

PyCaret是一个开源、低代码Python机器学习库&#xff0c;能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具&#xff0c;极大地加快了实验周期&#xff0c;提高了工作效率。PyCaret本质上是围绕几个机器学习库和框架&#xff08;如scikit-learn、XGBoost、L…

每天半小时,让大脑变得更聪明

晚上好。 今天的文章&#xff0c;我想跟你分享一套简单又有效的「大脑保健操」。每天只需要很短的时间&#xff0c;就能有效地锻炼和强化你的脑力。 这些都是我践行了许多年的习惯&#xff0c;也有切实的实验和理论基础作为依托。 你不需要每天都完全按照这套模式来执行&#x…

Kafka篇:Kafka搭建、使用、及Flink整合Kafka文档

一、Kafka搭建 1、上传并解压改名 tar -xvf kafka_2.11-1.0.0.tgz mv kafka_2.11-1.0.0 kafka-1.0.0 2、配置环境变量 vim /etc/profile export KAFKA_HOME/usr/local/soft/kafka-1.0.0 export PATH$PATH:$KAFKA_HOME/bin source /etc/profile &#xff08;使环境变量生效…

机器学习学习

机器学习类型(按学习方式分):监督学习、半监督学习、无监督学习、强化学习; 通过已知标签训练集训练模型,使用模型及逆行预测、测试; 向量表示法,其中每一维对应一个特征(feature)或者称为属性,记为[x1,x2,...,xn] 特征值、特征、标签,共同完成训练集的数据填充,最…

FreeRTOS基础(六):中断管理

在嵌入式系统开发中&#xff0c;中断管理是一个至关重要的概念。它允许我们的系统能够及时响应外部事件&#xff0c;而不需要通过轮询的方式来浪费宝贵的处理器资源。FreeRTOS作为一款广泛应用的实时操作系统&#xff0c;它提供了灵活且高效的中断管理机制&#xff0c;可以帮助…

搭建基于Django的博客系统增加广告轮播图(三)

上一篇&#xff1a;ChatGPT搭建博客Django的web网页添加用户系统&#xff08;二&#xff09; 下一篇&#xff1a;搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL&#xff08;四&#xff09; 功能概述 增加轮播图显示广告信息。 需求详细描述 1. 增加轮播图显示广告信…

STM32(九):USART串口通信 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中独立看门狗来实现检测按键点灯的程序。这篇文章我们来介绍一下如何用STM32单片机中USART通信协议来串口通信&#xff0c;并向XCOM发送信息。 一、实验原理 1.通信的介绍 首先&#xff0c;我们先介绍一下通信&#xff0c;何为通…

嵌入式linux系统中图片处理详解

大家好,今天给大家分享一下,嵌入式中如何进行图像处理,常见的处理方式有哪几种?这次将详细分析一下 第一:BMP图形处理方式 图形的基本特点,所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息…

DataCube 漏洞小结

在这里分享一下通过拖取 DataCube 代码审计后发现的一些漏洞&#xff0c;包括前台的文件上传&#xff0c;信息泄露出账号密码&#xff0c;后台的文件上传。当然还有部分 SQL 注入漏洞&#xff0c;因为 DataCube 采用的是 SQLite 的数据库&#xff0c;所以SQL 注入相对来说显得就…

海外高清短视频:四川京之华锦信息技术公司

海外高清短视频&#xff1a;探索世界的新窗口 在数字化时代的浪潮下&#xff0c;海外高清短视频成为了人们探索世界、了解异国风情的新窗口。四川京之华锦信息技术公司这些短视频以其独特的视角、丰富的内容和高清的画质&#xff0c;吸引了无数观众的目光&#xff0c;让人们足…

关于前端代码移动端的适配方案

为什么需要适配&#xff1f; 由于PC端和移动端的分辨率不同&#xff0c;前端展示的页面在两端设备如果原模原样的搬运则会导致PC端或移动端看到的画面相对于其设备的分辨率及其的不合理。 最为常见的是PC端正常浏览的网页没有做移动端适配&#xff0c;由于移动端分辨率普遍低于…