当前位置:   article > 正文

uni-app移动端pdf在线预览。_pattern.at is not a function

pattern.at is not a function

        最近要在移动端内加一个系统的操作手册,网上搜了很多教程,很多都比较乱。自己把遇到的坑总结一下。

        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路径转换成平台绝对路径在真机上就可以显示出来了。(目前仅测试安卓端没问题)

  1. APP真机
  2. {
  3. "tempFilePath": "_doc/uniapp_temp_1718179591742/download/xxxx操作手册V1.pdf",
  4. "statusCode": 200,
  5. "errMsg": "downloadFile:ok"
  6. }
  7. 内置浏览器
  8. {
  9. "errMsg": "downloadFile:ok",
  10. "statusCode": 200,
  11. "tempFilePath": "blob:http://localhost:8081/5b52abdf-459f-4b2ed5dbfd"
  12. }

 【有道云笔记】hybrid.zip
https://note.youdao.com/s/DdaUXnSK

  1. viewerUrl: '/hybrid/html/web/viewer.html', //data里引用这个文件
  2. //downLoadPicBlobCanvas封装,options是接口返回的ID这里拿ID去下载对应的PDF
  3. downLoadPicBlobCanvas(options) {
  4. if (options.annexId && options.annexId !== 'null') {
  5. downLoadPicBlobCanvas(options.annexId).then(res => {
  6. let fileUrl = plus.io.convertLocalFileSystemURL(res.tempFilePath)
  7. this.url = this.viewerUrl + '?file=' + encodeURIComponent(fileUrl);
  8. }).catch(err => {
  9. console.log(err);
  10. })
  11. } else {
  12. console.log('111212');
  13. }
  14. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/1001436
推荐阅读
相关标签
  

闽ICP备14008679号