HarmonyOS 鸿蒙Next中使用PdfView预览pdf, 可以进行手指进行滑动,签字笔无法进行滑动

HarmonyOS 鸿蒙Next中使用PdfView预览pdf, 可以进行手指进行滑动,签字笔无法进行滑动

【API版本】Api18

【DevEco Studio版本】 5.1.1

【问题描述】使用PdfView实现预览pdf,我参考官网文档的代码,目前可以手动进行滑动pdf,无法使用签字笔进行滑动pdf。

【问题相关代码】

PdfView({
  controller: this.controller,
  showScroll: true,
  pageLayout: 1,
  isContinuous: true,
  pageFit: pdfService.PageFit.FIT_WIDTH,
})

更多关于HarmonyOS 鸿蒙Next中使用PdfView预览pdf, 可以进行手指进行滑动,签字笔无法进行滑动的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

如果pdfView 外层嵌套Scroll 容器,会导致滑动事件被抢占,影响签字笔操作,从你给出的代码无法确认是否存在嵌套

尝试将isContinuous设为false,启用分页模式观察签字笔响应

更多关于HarmonyOS 鸿蒙Next中使用PdfView预览pdf, 可以进行手指进行滑动,签字笔无法进行滑动的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


PdfView组件默认可能优先响应触摸事件,而对签字笔的滑动事件支持不足,另外签字笔输入可能被识别为书写行为而非滚动操作。

改用Web组件加载PDF文件试试:

Web({
  src: "resource://rawfile/test.pdf",
  controller: this.webController
})
.domStorageAccess(true)
.gesture(
  PanGesture({ direction: PanDirection.All })
    .onActionStart(() => {
      // 统一处理滑动事件
    })
)

如果签字笔其他页面都可以,就这个PDF预览的不行,那确实有可能是认为非触摸行为了,这种估计也不好改吧。

用这个web加载的感觉不错,试一试呢,

在HarmonyOS鸿蒙Next中,PdfView组件默认支持手指滑动浏览PDF文档,但签字笔滑动可能未被原生支持。这是由于PdfView的触摸事件处理机制主要针对手指触控优化,未适配主动笔的滑动特性。若需实现签字笔滑动,需通过自定义手势识别或重写onTouchEvent方法,单独处理手写笔的MOVE事件。当前SDK版本中,PdfView对主动笔的支持仅限于书写输入,未开放滑动浏览的API接口。

这个问题可能是由于PdfView组件默认没有处理手写笔的滑动事件导致的。在HarmonyOS Next中,手写笔和手指的触摸事件处理机制有所不同。

要解决这个问题,你可以尝试以下方法:

  1. 检查PdfView是否支持手写笔事件,可能需要手动添加手势识别器:
PdfView({
  controller: this.controller,
  showScroll: true,
  pageLayout: 1,
  isContinuous: true,
  pageFit: pdfService.PageFit.FIT_WIDTH,
})
.gesture(
  PanGesture({ fingers: 1 }) // 添加单指/笔手势识别
)
  1. 确保你的设备驱动正确识别手写笔输入,可以在onTouch事件中打印日志检查:
.onTouch((event: TouchEvent) => {
  console.log("Touch event type: " + event.type + ", source: " + event.source)
})
  1. 如果问题依旧,可能需要检查系统的手写笔设置或更新SDK版本,因为早期版本可能对手写笔支持不完全。
回到顶部