HarmonyOS 鸿蒙Next:从beta1升级到beta3,预览应用内文件失败

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:从beta1升级到beta3,预览应用内文件失败
<markdown _ngcontent-pdj-c237="" class="markdownPreContainer">

文件路径为file://{bundleName}/data/storage/el2/base/haps/entry/files/123.html filePreview.canPreview返回true,openPreview之后显示预览失败

Succeeded in canPreview. result = true
getFileMimeType html
getFileMimeType = text/html
FilePreview: openPreview
FilePreview: the value read from the system parameter is 2
FilePreview: openPreviewPhone
FilePreview: calling bundlename is xxx
AbsSharedResultSet[GoToRow]: position[0] rowCnt[0] rowPos[-1]!
AbsSharedResultSet[GoToRow]: position[0] rowCnt[0] rowPos[-1]!
Succeeded in openPreview
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

之前在beta1模拟器上测试过是可以的

</markdown>

关于HarmonyOS 鸿蒙Next:从beta1升级到beta3,预览应用内文件失败的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
1 回复
请参考以下示例修改,检查下let fileInfo: filePreview.PreviewInfo是否正确, demo: import { filePreview } from '[@kit](/user/kit).PreviewKit'; import { BusinessError } from '[@kit](/user/kit).BasicServicesKit'; import fs from '[@ohos](/user/ohos).file.fs'; import fileUri from "[@ohos](/user/ohos).file.fileuri"; let uiContext = getContext(this); let displayInfo: filePreview.DisplayInfo = { x: 100, y: 100, width: 800, height: 800 }; let fileInfo: filePreview.PreviewInfo = { title: 'th.jpg', uri: 'file://com.example.previewfileapp/data/storage/el2/base/haps/entry/files/th.jpg', mimeType: 'image/jpeg' }; [@Entry](/user/Entry) [@Component](/user/Component) struct Index { build() { Column() { Row() { Button('复制') .onClick(() => { try { getContext(this).resourceManager.getRawFileContent("th.jpg", (error: BusinessError, value: Uint8Array) => { if (error != null) { console.error("error is " + error); } else { let myBuffer:ArrayBufferLike = value.buffer let context = getContext(this); //沙箱路径 let filePath = context.filesDir + '/' + "th.jpg"; console.log("testTag-filePath:" + filePath); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let writeLen = fs.writeSync(file.fd, myBuffer); console.info("testTag-write data to file succeed and size is:" + writeLen); fs.closeSync(file); } }); } catch (error) { let code = (error as BusinessError).code; let message = (error as BusinessError).message; console.error(`callback getRawFileContent failed, error code: ${code}, message: ${message}.`); } }) } .justifyContent(FlexAlign.SpaceAround) .width('100%') Row() { Button('预览') .onClick(() => { filePreview.openPreview(uiContext, fileInfo, displayInfo).then(() => { console.info('Succeeded in opening preview'); }).catch((err: BusinessError) => { console.error(`Failed to open preview, err.code = ${err.code}, err.message = ${err.message}`); }); }) } .justifyContent(FlexAlign.SpaceAround) .width('100%') } .justifyContent(FlexAlign.SpaceAround) .height('100%') .width('100%') } }
回到顶部