图书目录

目    录

第 1 章  HarmonyOS介绍 1

1.1  HarmonyOS的发展历程 1

1.2  HarmonyOS的设计理念 2

1.3  HarmonyOS的整体架构 3

1.4  HarmonyOS的技术特性 6

1.5  HarmonyOS的应用场景 7

第 2 章  应用开发准备 8

2.1  开发环境搭建 8

2.1.1  下载DevEco Studio 8

2.1.2  安装DevEco Studio 9

2.2  创建工程 11

2.3  DevEco Studio界面简介 12

2.4  运行Hello World工程 14

2.5  应用工程结构介绍 18

2.5.1  工程级目录 18

2.5.2  模块级目录 19

2.5.3  app.json5 20

2.5.4  module.json5 20

2.5.5  main_pages.json 23

2.6  应用/服务开发流程 24

第 3 章  学习ArkTS语言 25

3.1  ArkTS语言及其基本组成 25

3.1.1  ArkTS语言简介 25

3.1.2  ArkTS的基本组成 26

3.2  声明 27

3.2.1  变量、常量与自动类型推断 27

3.2.2  数据类型 28

3.2.3  运算符 31

3.2.4  语句 32

第 4 章  认识UIAbility组件 37

4.1  UIAbility组件概述 37

4.2  UIAbility组件生命周期 38

4.2.1  Create状态 38

4.2.2  WindowStageCreate和WindowStageDestroy状态 39

4.2.3  WindowStageWillDestroy状态 41

4.2.4  Foreground和Background状态 41

4.2.5  Destroy状态 42

4.2.6  自定义组件生命周期 42

4.3  UIAbility组件的用法与数据传递 44

4.3.1  指定UIAbility的启动页面 44

4.3.2  获取UIAbility的上下文信息 44

4.3.3  使用EventHub进行数据通信 45

4.3.4  使用AppStorage/LocalStorage进行数据同步 47

4.4  应用内页面跳转及数据交互 48

4.4.1  启动应用内的UIAbility 48

4.4.2  启动应用内的UIAbility并获取返回结果 50

4.4.3  启动UIAbility的指定页面 51

4.5  UIAbility组件启动模式 54

4.5.1  Singleton启动模式 55

4.5.2  Multiton启动模式 56

4.5.3  Specified启动模式 56

第 5 章  ArkUI概述与布局 59

5.1  ArkUI概述 59

5.2  ArkTS声明式开发范式 61

5.2.1  声明式开发范式的基本组成 61

5.2.2  声明式开发范式的特点 62

5.2.3  声明式开发范式的整体架构 62

5.2.4  声明式开发范式的开发流程 63

5.2.5  声明式开发范式的通用规则 64

5.3  布局设计 64

5.4  布局详解 67

5.4.1  线性布局(Row/Column) 68

5.4.2  层叠布局(Stack) 77

5.4.3  弹性布局(Flex) 80

5.4.4  相对布局(RelativeContainer) 89

5.4.5  栅格布局(GridRow/GridCol) 93

5.4.6  网格布局(Grid/GridItem) 99

5.4.7  创建列表(List) 107

5.4.8  创建轮播(Swiper) 125

5.4.9  选项卡(Tabs) 130

5.5  沉浸式效果 136

5.5.1  窗口全屏布局方案 137

5.5.2  组件安全区方案 140

第 6 章  ArkUI基础 144

6.1  基础组件 144

6.1.1  Blank 144

6.1.2  Text/Span 146

6.1.3  TextInput/TextArea 152

6.1.4  Button 154

6.1.5  Radio 157

6.1.6  Toggle 159

6.1.7  Progress 160

6.1.8  Image 162

6.2  媒体组件 172

6.2.1  Vedio 172

6.2.2  Audio 177

6.3  绘制组件 181

6.4  画布组件 187

6.4.1  使用画布组件绘制自定义图形 187

6.4.2  初始化画布组件 191

6.4.3  画布组件绘制方式 191

6.4.4  画布组件常用方法 192

6.5  实战:使用ArkUI实现登录页面 195

6.5.1  使用Column容器实现整体布局 195

6.5.2  使用Image组件实现标志展示 195

6.5.3  使用TextInput组件实现账号和密码的输入 195

6.5.4  实现“登录”按钮和“注册”按钮 196

6.5.5  实现其他登录方式 196

6.5.6  完整代码 196

第 7 章  ArkUI进阶 199

7.1  气泡和菜单 199

7.1.1  气泡提示(Popup) 199

7.1.2  菜单(Menu) 203

7.2  使用弹出框 205

7.2.1  使用全局弹出框 206

7.2.2  不依赖UI组件的全局自定义弹出框(推荐) 208

7.2.3  自定义弹出框(CustomDialog) 212

7.3  支持交互事件 220

7.3.1  交互事件概述 220

7.3.2  通用事件介绍 221

7.3.3  触屏事件 224

7.3.4  鼠标键盘事件 226

7.3.5  焦点事件 236

7.3.6  拖曳事件 251

7.3.7  手势事件介绍 259

7.4  支持适老化 274

7.4.1  基本概念 274

7.4.2  使用约束 274

7.4.3  适配适老化的组件及触发方式 275

7.4.4  SideBarContainer示例 275

7.4.5  TextPickerDialog示例 277

7.5  主题设置 279

7.5.1  应用深浅色适配 279

7.5.2  设置应用内主题换肤 281

第 8 章  公共事件 287

8.1  公共事件简介 287

8.2  动态订阅公共事件 289

8.3  取消动态订阅公共事件 290

8.4  发布公共事件 291

第 9 章  网络服务 293

9.1  HTTP数据请求 293

9.1.1  request接口开发步骤 293

9.1.2  requestInStream接口开发步骤 295

9.1.3  证书锁定 297

9.2  实战:HTTP请求获取网络天气信息 298

9.2.1  获取数据接口 299

9.2.2  配置开发环境 299

9.2.3  创建对象存储数据 300

9.2.4  创建获取天气类 301

9.2.5  创建天气显示界面 302

9.3  WebSocket连接 308

9.4  MDNS管理 310

9.4.1  管理本地服务 310

9.4.2  发现本地服务 311

9.5  网络连接管理 313

9.5.1  基本概念与典型场景 313

9.5.2  接收指定网络的状态变化通知 313

9.5.3  监控默认网络变化并主动重建网络连接 314

9.5.4  获取所有注册的网络 317

9.5.5  根据数据网络查询网络的能力信息及连接信息 317

9.5.6  使用对应网络解析域名,获取所有IP地址 320

9.6  流量管理 320

第 10 章  安全管理 322

10.1  程序访问控制 322

10.1.1  访问控制 322

10.1.2  应用权限管控 323

10.1.3  申请应用权限 325

10.1.4  向用户申请授权 329

10.2  使用安全控件 332

10.2.1  安全控件概述 332

10.2.2  使用粘贴控件 335

10.2.3  使用保存控件 336

10.2.4  使用位置控件 338

第 11 章  ArkData数据管理 341

11.1  ArkData概述 341

11.1.1  ArkData简介 341

11.1.2  运作机制 342

11.2  标准化数据定义 343

11.2.1  标准化数据类型 343

11.2.2  标准化数据结构 349

11.3  应用数据持久化 351

11.3.1  应用数据持久化概述 351

11.3.2  通过用户首选项实现数据持久化 351

11.3.3  通过键值型数据库实现数据持久化 354

11.3.4  通过关系型数据库实现数据持久化 358

11.4  同应用跨设备数据同步(分布式) 365

11.4.1  同应用跨设备数据同步概述 365

11.4.2  键值型数据库跨设备数据同步 365

11.4.3  关系型数据库跨设备数据同步 371

第 12 章  设备管理器 375

12.1  传感器 375

12.1.1  传感器开发概述 375

12.1.2  传感器类型 375

12.1.3  传感器运作机制 377

12.1.4  传感器开发步骤 378

12.2  振动 379

12.2.1  振动开发概述 379

12.2.2  振动运作机制 379

12.2.3  振动效果说明 379

12.2.4  振动开发步骤 381

12.3  状态栏开放服务 385

12.3.1  场景介绍 385

12.3.2  开发步骤 385

第 13 章  实战案例:购物应用 390

13.1  购物应用概述 390

13.1.1  购物流程说明 390

13.1.2  主要功能 390

13.2  项目框架设计 391

13.3  首页内容展示 392

13.4  实现消息列表和消息详情 396

13.4.1  消息列表展示 396

13.4.2  消息详情展示 398

13.5  实现购物车页面 402

13.6  实现“我的”页面 403

13.6.1  个人信息功能实现 403

13.6.2  订单信息 405

13.6.3  订单详情 406

13.6.4  设置页面 406

13.7  实现商品详情页面 407

第 14 章  实战案例:聊天应用 410

14.1  仿微信聊天应用概述 410

14.2  主页架构设计 411

14.3  实现“微信”页面 413

14.3.1  顶部ToolBar 413

14.3.2  聊天列表 414

14.3.3  聊天记录 414

14.4  实现“通讯录”页面 419

14.4.1  基础布局 419

14.4.2  索引模块实现 419

14.5  实现“发现”页面 420

14.6  实现“我”页面 421

14.6.1  个人基本信息 421

14.6.2  二维码页面 422

14.6.3  其他信息 424