目录
第1章前端开发基础/1
1.1JavaScript基础1
1.1.1快速开始1
1.1.2变量及数据类型2
1.1.3运算符3
1.1.4流程控制4
1.1.5函数8
1.2ES6的新特性11
1.2.1变量声明11
1.2.2箭头函数13
1.2.3模板字符串14
1.2.4类Class15
1.2.5模块化16
1.2.6Promise18
1.3TypeScript20
1.3.1TypeScript概述20
1.3.2静态类型系统20
1.3.3抽象类和接口21
1.3.4枚举23
1.3.5泛型24
【本章总结】25
【课后习题】26
第2章HarmonyOS应用开发环境/27
2.1华为DevEco Studio的安装和配置27
2.2第一个鸿蒙程序29
2.3项目结构31
2.3.1项目结构目录说明31
2.3.2module.json5配置文件说明32
2.4预览器Preview34
2.5本地模拟器352.6本地真机环境的搭建38
2.7程序调试Debug的使用40
2.8修改App项目的图标和名称40
【本章总结】42
【课后习题】42
第3章ArkTS状态管理与渲染控制/44
3.1ArkTS概述44
3.2ArkUI的基本组成45
3.3自定义组件46
3.3.1自定义组件的基本结构46
3.3.2创建旅游攻略组件47
3.4状态管理49
3.4.1状态管理概述49
3.4.2@State50
3.4.3@Prop50
3.4.4@Link52
3.4.5@Provide/@Consume52
3.4.6@Observed/@ObjectLink53
3.5管理应用拥有的状态54
3.5.1LocalStorage54
3.5.2AppStorage56
3.6渲染控制57
3.6.1if/else条件渲染58
3.6.2ForEach循环渲染59
【本章总结】61
【课后习题】61
第4章ArkUI常用组件与布局/62
4.1ArkUI常用组件62
4.2ArkUI组件的基本属性CommonAttribute63
4.3案例实践: 驴途项目开屏页Welcome.ets开发64
4.4ArkUI组件基本事件CommonEvent66
4.5ArkUI布局69
4.5.1线性布局69
4.5.2层叠布局72
4.5.3相对布局72
4.5.4列表73
4.6案例实践: 驴途项目首页Index开发74
4.6.1首页搜索栏的实现74
4.6.2首页轮播图的实现76
4.6.3旅游攻略列表的实现76
4.6.4底部TabBar的实现79
【本章总结】82
【课后习题】83
第5章界面动画手势与Web组件开发/84
5.1动画84
5.1.1动画参数84
5.1.2动画属性(animation)85
5.1.3显式动画(animateTo)86
5.1.4帧动画(ohos.animator)86
5.1.5转场动画88
5.2手势(gesture)89
5.2.1手势类型89
5.2.2绑定手势(gesture)90
5.2.3各手势接口91
5.3Web组件92
5.3.1Web组件和WebController控制器92
5.3.2加载远程网页和本地网页93
5.3.3App与Web组件内的网页交互94
5.4案例实践——旅游攻略详情页95
5.4.1旅游攻略详情页整体结构的构建96
5.4.2头部实现96
5.4.3主体实现97
5.4.4底部实现99
5.4.5评论区实现99
5.5攻略分享页面的整体构建101
5.5.1攻略分享页面的整体结构101
5.5.2照片分享区域的实现102
5.5.3攻略分享页面自定义弹窗的实现103
5.6注册页面104
5.6.1注册页面的整体结构105
5.6.2注册表单信息校验106
5.6.3《用户协议和隐私政策》弹窗107
【本章总结】108
【课后习题】108
第6章应用模型开发/109
6.1应用模型概述109
6.2Stage模型概述110
6.3应用配置文件111
6.3.1全局配置文件app.json111
6.3.2模块配置文件module.json111
6.3.3应用图标及名称113
6.4AbilityStage组件容器114
6.4.1应用上下文(Context)114
6.4.2AbilityStage114
6.4.3AbilityStage开发实践115
6.5UIAbility组件116
6.5.1UIAbility的启动模式116
6.5.2指定实例启动旅游攻略列表117
6.5.3UIAbility组件的生命周期118
6.5.4WindowStage119
6.6启动应用内的UIAbility组件120
6.6.1启动应用内的UIAbility120
6.6.2AbilityStage获取Key121
6.6.3UIAbility获取参数123
6.6.4UIAbility组件与UI的数据同步123
6.7应用间跳转125
6.7.1拉起指定应用125
6.7.2拉起指定类型的应用128
【本章总结】130
【课后习题】130
第7章权限管理与网络请求/132
7.1应用权限概述132
7.1.1APL等级132
7.1.2权限授权方式133
7.2申请权限133
7.2.1申请权限的流程133
7.2.2声明权限133
7.3向用户申请授权135
7.4网络请求139
7.4.1HTTP模块139
7.4.2HTTP请求和应答139
7.5应用签名141
7.5.1创建密钥库文件及证书请求文件141
7.5.2创建HarmonyOS应用/元服务142
7.5.3申请调试证书143
7.5.4申请调试Profile文件143
7.5.5配置签名145
【本章总结】146
【课后习题】146
第8章文件服务和数据管理/148
8.1文件基础服务概述148
8.1.1文件分类148
8.1.2文件基础服务的特点148
8.2应用文件开发149
8.2.1沙箱目录150
8.2.2获取应用文件路径151
8.2.3获取模块文件路径152
8.2.4应用文件操作154
8.3用户文件开发157
8.3.1用户文件概述157
8.3.2选择用户文件158
8.3.3保存用户文件162
8.4数据管理165
8.5用户首选项的开发166
8.6键值型数据库的开发169
8.7关系数据库的开发171
8.7.1草稿保存功能173
8.7.2草稿读取功能176
8.7.3草稿删除功能178
8.7.4草稿修改功能181
【本章总结】182
【课后习题】183
第9章应用后台任务/184
9.1后台任务概述184
9.2短时任务185
9.2.1短时任务概述185
9.2.2攻略分享数据保存185
9.3长时任务186
9.3.1长时任务概述186
9.3.2用户定位持续更新187
9.4延迟任务189
9.4.1延迟任务概述189
9.4.2延迟任务实践190
9.5代理提醒192
【本章总结】192
【课后习题】193
第10章手机能力开发/194
10.1公共事件服务194
10.1.1公共事件概述194
10.1.2公共事件的类型195
10.1.3订阅电量过低事件195
10.2用户通知服务196
10.2.1用户通知服务概述196
10.2.2发布通知197
10.3剪贴板服务199
10.3.1剪贴板概述199
10.3.2剪贴板实践199
【本章总结】200
【课后习题】201
第11章SDK开放能力/202
11.1HarmonyOS应用服务202
11.2Scan Kit统一扫码服务203
11.2.1Scan Kit概述203
11.2.2用户二维码生成203
11.2.3默认界面扫码能力204
11.3Location Kit位置服务205
11.3.1位置服务概述205
11.3.2获取设备的当前位置206
11.4Map Kit地图服务207
11.4.1地图服务概述207
11.4.2开发前的准备207
11.4.3地图显示209
11.4.4地图交互211
11.4.5地图Poi搜索212
11.5Ads Kit广告服务214
11.5.1广告的分类214
11.5.2开发前的准备214
11.5.3展示开屏广告215
【本章总结】217
【课后习题】218
第12章集成第三方库的NDK技术应用/219
12.1NAPI技术219
12.1.1NAPI的工作原理219
12.1.2NAPI常用的API(NodeAPI)220
12.2NDK工程222
12.2.1NDK工程的创建222
12.2.2ArkTS侧文件列表223
12.2.3Native C++侧文件列表224
12.2.4NDK应用总体调用流程224
12.3NDK工程编译和使用226
12.3.1HarmonyOS NDK工程编译说明226
12.3.2CMakelist文件说明226
12.3.3NAPI常用库227
12.4ArkTS应用与Native C++交互技术228
12.4.1同步调用(ArkTS→C++)229
12.4.2同步回调(C++→ArkTS)234
12.4.3异步调用(ArkTS→C++→…→ArkTS)235
12.4.4ArkTS对象与Native对象绑定239
12.5XComponent组件245
12.5.1XComponent组件简介245
12.5.2NativeXComponent组件246
12.5.3XComponent组件与NativeXComponent接口247
12.5.4XComponent组件管理机制251
12.6XComponent组件应用案例: 自定义控件261
12.6.1XComponent组件封装261
12.6.2自定义控件事件处理262
12.6.3第三方库EGL接口和使用264
12.6.4自定义控件绘制渲染267
【本章总结】282
【课后习题】283
第13章元服务开发与可分可合、自由流转/284
13.1元服务概述284
13.1.1元服务和应用的区别284
13.1.2元服务的特征285
13.2元服务开发286
13.2.1创建元服务工程286
13.2.2元服务图标开发289
13.2.3景点门票元服务首页开发290
13.2.4景点门票详情页开发291
13.2.5元服务卡片开发293
13.3可分可合302
13.3.1开发态复用302
13.3.2运行态复用308
13.4自由流转311
13.4.1自由流转概述311
13.4.2应用接续开发实践312
【本章总结】315
【课后习题】316
第14章一次开发,多端部署/317
14.1“一多”的定义及目标317
14.2“一多”的开发流程318
14.2.1UX设计318
14.2.2架构设计与工程管理318
14.2.3页面开发319
14.2.4功能开发319
14.3“一多”架构设计与工程管理320
14.3.1分层架构逻辑模型320
14.3.2分层架构开发模型321
14.3.3分层架构部署模型322
14.3.4分层架构的实现323
14.4“一多”页面的开发327
14.4.1布局能力328
14.4.2布局能力实践343
14.4.3交互归一347
14.4.4多态组件348
14.5“一多”功能的开发348
14.5.1系统能力(SysCap)与API348
14.5.2多设备应用开发349
【本章总结】350
【课后习题】351
第15章端云一体化开发/352
15.1云开发服务352
15.1.1云开发服务的优势352
15.1.2端云一体化开发的流程353
15.2创建端云一体化工程354
15.2.1端云一体化工程的创建354
15.2.2端云一体化工程目录结构357
15.3云数据库开发358
15.3.1云数据库的概念358
15.3.2云数据库开发的流程360
15.3.3端侧访问云数据库366
15.4云函数开发369
15.4.1云函数的概念369
15.4.2云函数开发的流程369
15.4.3端侧调用云函数376
【本章总结】377
【课后习题】377
参考文献/379
