Arkts加载网页url的pdf发票黑屏问题
使用模拟器会闪退,连接真机预览正常
import { HMRouter, HMRouterMgr, HMParamType, HMPageParam } from "@hadss/hmrouter";
import { BaseTitle, RouterConstants } from "commonlib";
import { webview } from '@kit.ArkWeb';
import { PDFView } from '@hjm/pdfview'
import { ImagePreview } from "@rv/image-preview";/*发票PDF查看界面*/
@HMRouter({ pageUrl: RouterConstants.INVOICE_PDF_PAGE})
@ComponentV2
export struct InvoicePDFPage {@Local invoiceUrl: string = ''; // 直接存储URLprivate webviewController: WebviewController = new webview.WebviewController()private scroller: Scroller = new Scroller()aboutToAppear(): void {// 获取传递的参数let param = HMRouterMgr.getCurrentParam(HMParamType.all);// 安全地访问参数try {const paramStr = JSON.stringify(param);console.log('接收到的参数:', paramStr);// 使用字符串匹配提取URLconst match = paramStr.match(/"invoiceUrl"\s*:\s*"([^"]+)"/);if (match && match[1]) {this.invoiceUrl = match[1];// 解码可能的URL转义字符try {this.invoiceUrl = decodeURIComponent(this.invoiceUrl);} catch (e) {// 如果解码失败,使用原始URL}console.log('提取到的发票URL:', this.invoiceUrl);} else {console.log('未找到invoiceUrl字段');}} catch (e) {console.log('参数处理失败:', e);}}build() {Column() {BaseTitle({showBackBtn: true,customTitle: this.titleBuilder,bgColor: $r('app.color.title_primary_bg'),onBack: () => {HMRouterMgr.pop()}})Scroll(this.scroller){Column(){if (this.invoiceUrl && this.invoiceUrl.length > 0) {ImagePreview() {PDFView({/* 数据源 */pdfUrl: this.invoiceUrl,})}// 不使用任何可能不存在的额外属性} else {Column() {Text("发票链接无效").fontSize($r('app.float.16_font')).fontColor($r('app.color.tips_font'))}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}}}.width('100%').height('100%')}@BuildertitleBuilder() {Row() {Text($r('app.string.invoice_pdf_title')).fontSize($r('app.float.20_font')).fontColor($r('app.color.title_primary_font'))}.width('100%').justifyContent(FlexAlign.Center)}
}