HarmonyOS 鸿蒙Next web加载本地pdf无法显示
HarmonyOS 鸿蒙Next web加载本地pdf无法显示
之前还正常,可以显示,今天测试提bug说显示不了,我一检查,发现以前的功能也不行了。
流程,从服务器下载了pdf文件,写到沙盒内,将路径给web进行加载显示。
问题1:根据文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-pdf-preview-V5,显示我传递的路径前面应该有file://,但是我本地写的时候是没有的。如果这里
//保存文件并返回保存路径
saveFile(buf: ArrayBuffer, fileName: string): string {
try {
let pathDir = getContext(this).filesDir;
let filePath = pathDir + “/” + fileName; //如果这里前面加上’file://’ 保存会直接失败,所以这里不加.
//删除文件
if (fs.accessSync(filePath,0)) {
fs.unlinkSync(filePath)
}
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.writeSync(file.fd, buf);
console.log(<span class="hljs-string"><span class="hljs-string">"文件已保存到:"</span></span> + filePath + <span class="hljs-string"><span class="hljs-string">"\r\n"</span></span> )
fs.closeSync(file);
<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> filePath
} catch (e) {
return ‘’
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
这个返回的filePath是:/data/storage/el2/base/haps/main_app/files/附件详情.pdf
这里也不能加"file://",否则web也会加载不出来。
所以我的web是src就是:/data/storage/el2/base/haps/main_app/files/附件详情.pdf
Web({ src: ‘/data/storage/el2/base/haps/main_app/files/附件详情.pdf’, controller: this.webController })
.domStorageAccess(true)
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
这里之前也还能正常显示,前两天测试机升级到Beta 3后发现打卡不开了,找了一个Beta1的手机发现也打不开了。请问是那里出了问题?
关于HarmonyOS 鸿蒙Next web加载本地pdf无法显示的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
et file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
改成read 写是要权限的
路径没问题,就是手机升级到beta3后不行了。现在用pdfView打开了。
找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
学到了
pdfView 直接能打开 ‘/data/storage/el2/base/haps/main_app/files/附件详情.pdf’, 沙箱路径吗