阅读进度通知

当页面展示时,会通过页面展示回调接口返回页面渲染信息。页面渲染信息提供用于阅读进度跳转的domPos及resourceIndex属性,开发者可将属性缓存到数据库当中,用于阅读进度的恢复。

接口说明

阅读进度通知涉及2个接口,具体介绍如下表所示。

接口名 描述
on('pageShow') 注册页面展示的通知服务,该通知在页面排版成功展示后触发。
off('pageShow') 注销章节内容分页展示结果回调,可在页面销毁时调用。

开发准备

在进行阅读进度通知监听之前,请先确保已经“构建阅读器”。

开发步骤

  1. 通过ReaderComponentController组件控制器监听页面展示回调。

    当排版引擎渲染完页面后会回调on('pageShow')接口,将页面渲染信息进行返回。通过页面渲染信息的domPos及resourceIndex属性,可标识当前阅读进度。

    开发者可在on('pageShow')接口回调中将阅读进度实时保存到数据库当中,防止用户异常退出阅读器时的进度丢失。当用户下次继续阅读时,可将保存domPos及resourceIndex属性传入到startPlay接口中,用于阅读进度的恢复。

    // 保存页面展示回调函数引用,用于注销时使用
    private onPageShowCallback = (data: readerCore.PageDataInfo): void => {
      // 开发者可在此保存内容分页排版数据,利用data.resourceIndex及data.startDomPos数据调用startPlay接口继续阅读
      hilog.info(0x0000, 'ReaderLog', 'pageshow: data is: ' + JSON.stringify(data));
    }
    
    aboutToAppear(): void {
      this.setOnPageShowListener();
    }
    
    private setOnPageShowListener(): void {
      this.readerComponentController.on('pageShow', this.onPageShowCallback);
    }
  2. 页面销毁时,需要调用注销页面展示接口,需传入原注册的回调函数引用。

    aboutToDisappear(): void {
      this.readerComponentController.off('pageShow', this.onPageShowCallback);
    }