文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
API参考应用服务Reader Kit(阅读服务)ArkTS组件ReadPageComponent(阅读页组件)

ReadPageComponent(阅读页组件)

本模块提供ReadPageComponent组件,HarmonyOS应用通过集成该组件可快速构建书籍阅读功能。

起始版本: 5.0.4(16)

导入模块

PhonePC/2in1Tablet
收起
自动换行
深色代码主题
复制
  1. import { ReadPageComponent } from '@kit.ReaderKit';

ReadPageComponent

PhonePC/2in1Tablet

阅读页组件,支持对书籍排版内容的显示、多种翻页交互和翻页动效,以及翻页阅读过程中阅读器所需要的进度、行为感知能力。

说明
  • 支持根据阅读排版设置ReaderSetting对书籍内容进行按页进行排版、渲染。

  • 支持适配不同的设备屏幕尺寸(Phone、PC/2in1、Tablet,包括横竖屏适配),并在此基础上支持通过点击、滑动的方式进行阅读交互,支持仿真、横滑翻页方式(包括翻页过程动效)。

  • 支持排版结果通知能力,打开书籍或者触发翻页后按页提供当前页的排版结果信息PageDataInfo

装饰器类型: @Component

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本5.0.4(16)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Reader.ReaderService.ReaderCore

起始版本: 5.0.4(16)

参数:

展开
参数名 类型 装饰器类型 说明
controller ReaderComponentController _ ReadPageComponent控制器。
readerCallback AsyncCallback<readerCore.ReaderComponentController> _ 回调函数。

build

PhonePC/2in1Tablet

build(): void

用于创建ReadPageComponent对象的构造函数。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本5.0.4(16)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Reader.ReaderService.ReaderCore

起始版本: 5.0.4(16)

示例:

收起
自动换行
深色代码主题
复制
  1. import { bookParser, readerCore, ReadPageComponent } from '@kit.ReaderKit';
  2. import { common } from '@kit.AbilityKit';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. @Entry
  6. @Component
  7. struct Reader {
  8. private readerComponentController: readerCore.ReaderComponentController = new readerCore.ReaderComponentController();
  9. aboutToAppear(): void {
  10. this.init();
  11. }
  12. private async init() {
  13. // 通过提前导入到应用沙箱目录中的书籍文件,初始化书籍解析器
  14. let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  15. let filePath: string = `${context.filesDir}/abc.epub`;
  16. let bookParserHandler: bookParser.BookParserHandler = await bookParser.getDefaultHandler(filePath);
  17. let spineList: bookParser.SpineItem[] = bookParserHandler.getSpineList();
  18. let spineIndex: number = spineList[0].index;
  19. let domPos: string = '';
  20. await this.readerComponentController.init(context);
  21. this.readerComponentController.registerBookParser(bookParserHandler);
  22. this.readerComponentController.startPlay(spineIndex || 0, domPos);
  23. hilog.info(0x0000, 'testTag', `startPlay succeeded`);
  24. }
  25. aboutToDisappear(): void {
  26. this.readerComponentController.releaseBook();
  27. }
  28. build() {
  29. Stack() {
  30. ReadPageComponent({
  31. controller: this.readerComponentController,
  32. readerCallback: (err: BusinessError, data: readerCore.ReaderComponentController) => {
  33. this.readerComponentController = data;
  34. }
  35. })
  36. }.width('100%').height('100%').onClick(() => {
  37. // 支持在此实现点击拉起菜单栏功能
  38. })
  39. }
  40. }
在 API参考 中进行搜索
请输入您想要搜索的关键词