HarmonyOS 实现中的 PDF 远程加载、页面单击事件和 NativeModule 兼容性存在以下问题:
onPageSingleTap
HTTP://
HTTPS://
PdfManager
PdfManager.loadFile
TypeError
data:application/pdf;base64,...
PdfView
onError
source.uri
HTTPS://...
HTTP://...
PdfManager.loadFile(...)
Parameter verification failed, the url should start with http(s)://
Invariant Violation: "app_name" has not been registered
必现(100%,网络场景需设备可访问测试地址)。
br_rnoh0.77
@react-native-ohos/react-native-pdf@6.7.6-beta.2
import Pdf from '@react-native-ohos/react-native-pdf'; <Pdf source={{ uri: 'HTTPS://example.invalid/sample.pdf' }} onPageSingleTap={(page, x, y) => { console.info('page single tap', page, x, y); }} />
<Pdf source={{ uri: 'data:application/pdf;base64,JVBERi0xLjQ...' }} />
import PdfManager from './PdfManager'; await PdfManager.loadFile('/data/storage/el2/base/files/sample.pdf');
影响 HarmonyOS 上远程 PDF、base64 PDF、页面单击事件和 PdfManager 调用场景,可能导致 PDF 无法加载、加载界面永久卡住、页面点击功能不可用或 NativeModule 缺失时应用直接启动失败。
问题描述
HarmonyOS 实现中的 PDF 远程加载、页面单击事件和 NativeModule 兼容性存在以下问题:
onPageSingleTap没有触发。HTTP://、HTTPS://等大写协议头的 PDF URL 无法加载。PdfManagerNativeModule 时,调用PdfManager.loadFile会同步抛出TypeError。data:application/pdf;base64,...格式的 PDF。复现步骤
PdfView加载不可访问或下载失败的 HTTP(S) PDF 地址,观察加载状态和onError回调。onPageSingleTap回调。source.uri设置为HTTPS://...或HTTP://...,加载 PDF,观察网络识别和下载结果。PdfManagerNativeModule 的工程中调用PdfManager.loadFile(...),观察 JS 引擎和应用启动结果。onError是否携带明确下载失败信息。source.uri设置为合法的 base64 PDF 数据,观察 PDF 是否能加载。预期结果
onPageSingleTap,并传递页码和点击坐标。onError返回下载失败,不应继续按 PDF 文件解析。实际结果
onPageSingleTap永远不触发。Parameter verification failed, the url should start with http(s)://。PdfManager.loadFile在 NativeModule 缺失时同步抛出TypeError,可能导致Invariant Violation: "app_name" has not been registered。复现概率
必现(100%,网络场景需设备可访问测试地址)。
环境信息
br_rnoh0.77@react-native-ohos/react-native-pdf@6.7.6-beta.2DEMO
import Pdf from '@react-native-ohos/react-native-pdf'; <Pdf source={{ uri: 'HTTPS://example.invalid/sample.pdf' }} onPageSingleTap={(page, x, y) => { console.info('page single tap', page, x, y); }} /><Pdf source={{ uri: 'data:application/pdf;base64,JVBERi0xLjQ...' }} />import PdfManager from './PdfManager'; await PdfManager.loadFile('/data/storage/el2/base/files/sample.pdf');影响范围
影响 HarmonyOS 上远程 PDF、base64 PDF、页面单击事件和
PdfManager调用场景,可能导致 PDF 无法加载、加载界面永久卡住、页面点击功能不可用或 NativeModule 缺失时应用直接启动失败。