图书目录

目    录

第 1 章  初识鸿蒙HarmonyOS NEXT 1

1.1  DevEco Studio开发工具 1

1.1.1  下载和安装DevEco Studio 1

1.1.2  DevEco Studio的基本使用 4

1.1.3  手机运行Hello World应用 6

1.1.4  了解基本工程目录 7

1.2  ArkTS语言之基本UI描述 8

1.2.1  基本概念 9

1.2.2  创建组件 9

1.2.3  属性配置 11

1.2.4  事件配置 14

1.2.5  子组件配置 15

1.3  ArkTS语言之状态管理 16

1.3.1  @State 16

1.3.2  @Prop 22

1.3.3  @Link 26

1.3.4  @Observed和@ObjectLink 28

1.3.5  @Consume和@Provide 30

1.3.6  @Watch 32

1.4  ArkTS语言之状态管理进阶 33

1.4.1  LocalStorage:页面级UI状态存储 34

1.4.2  AppStorage:应用全局的UI状态存储 36

1.4.3  PersistentStorage:持久化存储UI状态 38

1.5  ArkTS语言之动态构建UI元素 39

1.5.1  @Builder 39

1.5.2  @BuilderParam 41

1.5.3  @Styles 42

1.5.4  @Extend 44

1.6  实战:自定义导航 45

1.7  本章小结 47

第 2 章  Ability开发 48

2.1  Stage模型的概述 48

2.1.1  重要概念 48

2.1.2  应用/组件级配置 49

2.2  UIAbility组件 53

2.2.1  UlAbility组件的概述 54

2.2.2  UIAbility组件的生命周期 54

2.2.3  UIAbility组件的启动模式 57

2.2.4  UIAbility组件的基本用法 63

2.2.5  UlAbility组件与UI的数据同步 65

2.3  信息传递的载体want 67

2.3.1  want的概述 67

2.3.2  显式want与隐式want的匹配规则 68

2.4  实战:显示want启动Ability 71

2.5  实战:隐式want打开浏览器 73

2.6  本章小结 75

第 3 章  UI开发基础 76

3.1  ArkUI概述 76

3.2  ArkTS的声明式开发范式 77

3.3  常用组件 78

3.4  基础组件详解 80

3.4.1  AlphabetIndexer 82

3.4.2  Blank 84

3.4.3  Button 85

3.4.4  CalendarPicker 89

3.4.5  Checkbox 90

3.4.6  CheckboxGroup 91

3.4.7  ContainerSpan 92

3.4.8  DataPanel 92

3.4.9  DatePicker 93

3.4.10  Divider 94

3.4.11  Gauge 95

3.4.12  Image 97

3.4.13  ImageAnimator 99

3.4.14  ImageSpan 101

3.4.15  LoadingProgress 101

3.4.16  Marquee 102

3.4.17  Menu 103

3.4.18  MenuItem 103

3.4.19  MenuItemGroup 105

3.4.20  Radio 106

3.4.21  Rating 107

3.4.22  RichText 108

3.4.23  Select 109

3.4.24  Slider 110

3.4.25  Text 112

3.4.26  TextArea 114

3.4.27  TextClock 114

3.4.28  TextInput 115

3.4.29  TextPicker 116

3.4.30  TextTimer 117

3.4.31  TimePicker 118

3.4.32  Toggle 119

3.5  实战:城市列表选择案例 121

3.5.1  数据模块的定义 122

3.5.2  主页布局 123

3.5.3  实现城市列表组件 125

3.5.4  实现搜索组件 127

3.5.5  项目小结 128

3.6  本章小结 128

第 4 章  UI开发进阶 129

4.1  容器组件详解 129

4.1.1  Badge 130

4.1.2  Column和Row 132

4.1.3  ColumnSplit和RowSplit 135

4.1.4  Counter 136

4.1.5  Flex 137

4.1.6  WaterFlow和FlowItem 148

4.1.7  Stack 153

4.1.8  GridRow和GridCol 153

4.1.9  Grid和GridItem 156

4.1.10  Hyperlink 161

4.1.11  List、ListItem和

ListItemGroup 162

4.1.12  Navigator 166

4.1.13  Panel 169

4.1.14  Refresh 170

4.1.15  RelativeContainer 173

4.1.16  Scroll 175

4.1.17  SideBarContainer 178

4.1.18  Swiper 180

4.1.19  Tabs和TabContent 184

4.2  绘制组件详解 188

4.2.1  Circle 188

4.2.2  Ellipse 189

4.2.3  Line 189

4.2.4  Polyline 191

4.2.5  Polygon 192

4.2.6  Path 192

4.2.7  Rect 194

4.2.8  Shape 195

4.3  画布组件Canvas 199

4.3.1  画布组件及对象 199

4.3.2  Canvas组件示例 202

4.4  弹窗详解 207

4.4.1  警告弹窗(AlertDialog) 208

4.4.2  列表选择弹窗(ActionSheet) 209

4.4.3  自定义弹窗(CustomDialog) 211

4.4.4  日历选择器弹窗(CalendarPickerDialog) 214

4.4.5  日期滑动选择器弹窗(DatePickerDialog) 215

4.4.6  时间滑动选择器弹窗(TimePickerDialog) 217

4.4.7  文本滑动选择器弹窗(TextPickerDialog) 219

4.5  自定义组件生命周期 220

4.5.1  自定义组件生命周期概述 220

4.5.2  自定义组件生命周期示例 221

4.6  实战:待办列表案例 223

4.6.1  TODO类定义 223

4.6.2  常量数据 224

4.6.3  列表项页面 224

4.6.4  列表项增删功能页面 228

4.7  本章小结 232

第 5 章  一次开发多端部署 233

5.1  “一多”开发工程目录管理 233

5.1.1  创建工程 233

5.1.2  新建Module 233

5.1.3  修改Module配置 235

5.1.4  调整目录结构,修改依赖关系 240

5.1.5  引用ohpm包中的代码 241

5.2  自适应布局 244

5.2.1  拉伸能力 245

5.2.2  均分能力 247

5.2.3  占比能力 249

5.2.4  缩放能力 252

5.2.5  延伸能力 254

5.2.6  隐藏能力 258

5.2.7  折行能力 261

5.3  响应式布局 262

5.3.1  断点 263

5.3.2  媒体查询 265

5.3.3  栅格布局 268

5.4  实战:页签栏布局 270

5.4.1  案例准备 271

5.4.2  案例实现 271

5.5  本章小结 274

第 6 章  多媒体应用开发 275

6.1  音频开发 275

6.1.1  音频开发概述 275

6.1.2  音频播放示例 278

6.1.3  音频录制示例 282

6.2  视频开发 284

6.3  实战:语音录制和声音动效的实现 288

6.3.1  案例要求与工程结构 288

6.3.2  案例实现 288

6.4  本章小结 292

第 7 章  进程通信 293

7.1  ExtensionAbility组件 293

7.1.1  ExtensionAbility组件概述 293

7.1.2  FormExtensionAbility组件 294

7.2  进程间通信 295

7.2.1  进程模型 295

7.2.2  公共事件简介 296

7.2.3  订阅公共事件 297

7.2.4  发布公共事件 299

7.3  线程间通信 300

7.3.1  线程模型 300

7.3.2  使用Emitter进行线程间通信 300

7.4  任务管理 301

7.4.1  Background Tasks Kit简介 301

7.4.2  短时任务的开发 302

7.4.3  长时任务的开发 303

7.4.4  延迟任务的开发 305

7.5  Stage模型的应用配置文件 307

7.6  实战:在Worker子线程中解压文件 309

7.6.1  工程结构和模块类型 309

7.6.2  实现思路 310

7.6.3  效果演示 311

7.7  本章小结 311

第 8 章  窗口管理 312

8.1  窗口开发概述 312

8.2  管理应用窗口 313

8.2.1  设置应用主窗口 313

8.2.2  设置应用子窗口 314

8.2.3  窗口的沉浸式能力 316

8.2.4  设置悬浮窗口 317

8.2.5  监听窗口不可交互与可交互事件 319

8.3  通知 320

8.3.1  通知概述 320

8.3.2  通知消息样式 326

8.3.3  撤回通知消息 327

8.4  实战:窗口管理应用 328

8.4.1  窗口管理应用功能说明 328

8.4.2  窗口管理应用的实现 328

8.5  本章小结 330

第 9 章  网络编程 331

9.1  HTTP数据请求 331

9.1.1  request接口开发 332

9.1.2  requestInStream接口开发 336

9.1.3  引入第三方库ohos_axios 337

9.2  Web组件的页面加载 339

9.2.1  加载网络页面 340

9.2.2  加载本地页面 341

9.2.3  加载HTML格式的文本数据 343

9.3  实战:通过HTTP请求数据 344

9.3.1  准备一个HTTP服务接口 344

9.3.2  使用List组件进行卡片布局 344

9.3.3  通过生命周期发起HTTP请求 345

9.3.4  通过生命周期使用第三方库发起HTTP请求 345

9.3.5  Web组件加载详情页面 346

9.4  本章小结 346

第 10 章  安全管理 347

10.1  访问控制概述 347

10.1.1  应用沙箱 347

10.1.2  应用权限等级和授权方法 347

10.1.3  系统控件 349

10.2  访问控制开发流程 349

10.2.1  权限列表 349

10.2.2  申请权限 351

10.2.3  授予权限 352

10.3  实战:获取位置授权 356

10.3.1  场景描述 356

10.3.2  声明访问的权限 356

10.3.3  申请授权 356

10.3.4  获取地理位置 357

10.4  本章小结 357

第 11 章  服务卡片开发 358

11.1  服务卡片概述 358

11.1.1  服务卡片架构 358

11.1.2  服务卡片的开发模式 360

11.1.3  服务卡片的制约 360

11.2  ArkTS卡片运行机制 361

11.3  ArkTS卡片相关模块 362

11.4  ArkTS卡片的开发 364

11.4.1  创建一个ArkTS卡片 364

11.4.2  配置卡片参数 368

11.4.3  卡片生命周期管理 370

11.5  实战:电子相册案例 372

11.5.1  项目概述 372

11.5.2  项目页面代码解读 372

11.5.3  添加卡片事件 379

11.6  本章小结 381

第 12 章  项目实战:多端部署之购物应用 382

12.1  项目概述 382

12.1.1  购物应用的功能 382

12.1.2  应用效果演示 383

12.2  代码结构 383

12.3  页面结构 385

12.3.1  启动页 385

12.3.2  主页 386

12.3.3  首页标签页 387

12.3.4  新品标签页 388

12.3.5  购物车标签页 388

12.3.6  我的标签页 389

12.3.7  商品详情页 390

12.3.8  订单确认页 391

12.3.9  订单支付页 393

12.3.10  订单列表页 395

12.4  本章小结 396

附录A  ArkTS语言基础 397

A.1  编程语言 397

A.2  TypeScript语法 398

A.3  语法进阶 402

A.4  类 406