赞
踩
最近要在移动端内加一个系统的操作手册,网上搜了很多教程,很多都比较乱。自己把遇到的坑总结一下。
1、pdf.js官网上最新包可能不太兼容,我这边会报错。Message: Setting up fake worker failed: "pattern.at is not a function".
2、一开始采用了 bolb 格式一直报错 bolb 未定义。最后查了下非H5端不是浏览器环境不支持 Dom、Bom 接口,没有 Blob 也没有 document 。
3、用了一个2.16版本的包放在static下的 pdf 文件夹中,在内置浏览器没问题,显示很完美。真机模拟就报错 Unexpected token '=' 尝试降低版本也没用。最后放弃。
这里是接口返回的数据,在App内和真机返回的数据有区别。导致一直获取不到具体路径,所以会显示不出来,最后用 plus.io.convertLocalFileSystemURL 将本地URL路径转换成平台绝对路径在真机上就可以显示出来了。(目前仅测试安卓端没问题)
- APP真机
- {
- "tempFilePath": "_doc/uniapp_temp_1718179591742/download/xxxx操作手册V1.pdf",
- "statusCode": 200,
- "errMsg": "downloadFile:ok"
- }
- 内置浏览器
- {
- "errMsg": "downloadFile:ok",
- "statusCode": 200,
- "tempFilePath": "blob:http://localhost:8081/5b52abdf-459f-4b2ed5dbfd"
- }
【有道云笔记】hybrid.zip
https://note.youdao.com/s/DdaUXnSK
- viewerUrl: '/hybrid/html/web/viewer.html', //在data里引用这个文件
-
-
- //downLoadPicBlobCanvas封装,options是接口返回的ID这里拿ID去下载对应的PDF
- downLoadPicBlobCanvas(options) {
- if (options.annexId && options.annexId !== 'null') {
- downLoadPicBlobCanvas(options.annexId).then(res => {
- let fileUrl = plus.io.convertLocalFileSystemURL(res.tempFilePath)
- this.url = this.viewerUrl + '?file=' + encodeURIComponent(fileUrl);
- }).catch(err => {
- console.log(err);
-
- })
- } else {
- console.log('111212');
- }
- },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。