当前位置:   article > 正文

uniapp h5本地预览pdf教程 (含白屏|跨域解决方案)_uniapp pdf.js

uniapp pdf.js

第一步 下载pdf.js

很多pdf.js版本在真机ios环境都会白屏

经测试后2.5.207版本比较稳定,Android和IOS环境PDF文件都能加载成功

下载地址
 https://github.com/mozilla/pdf.js/releases/tag/v2.5.207icon-default.png?t=N7T8https://github.com/mozilla/pdf.js/releases/tag/v2.5.207
第二步 解压移动pdfjs文件至项目中
 

在根目录static中创建html文件夹 , 将解压出来的pdfjs文件移动至html文件夹目录下

第三步 创建pdf文件预览页面preview.vue
 

远程pdf文件地址可能会有跨域问题,这里使用转文件流的方式进行处理,可根据实际业务逻辑改写

  1. <template>
  2. <web-view :src="pdfUrl" v-if="pdfUrl"></web-view>
  3. </template>
  4. <script>
  5. import request from '@/common/request.js';
  6. export default {
  7. data() {
  8. return {
  9. viewerUrl: '/static/html/web/viewer.html', //用来渲染PDF的html
  10. pdfUrl: '' // 最终显示在web-view中的路径
  11. }
  12. },
  13. onLoad(option) {
  14. console.log('=>进入了PDF预览页面')
  15. console.log('获取的参数=>', option,decodeURIComponent(option.src))
  16. let url = decodeURIComponent(option.src)
  17. let data = {
  18. url
  19. }
  20. uni.showLoading({
  21. mask:true
  22. })
  23. //使用pdf网络地址请求文件流信息,解决跨域问题
  24. uni.request({
  25. url:request.baseUrl+'/h5/loadByUrl', //域名拼接
  26. data: data,
  27. method: 'post',
  28. responseType: 'arraybuffer', //这里记得设置响应数据格式,不然预览的pdf是空白
  29. header: {
  30. "authorization": uni.getStorageSync('token') // 携带的token
  31. },
  32. success: (response) => {
  33. uni.hideLoading()
  34. console.log(response)
  35. let pdfData = response.data; //pdfData是后端返回的文件流
  36. //创建blob数据流
  37. let blob = new Blob([ pdfData], {
  38. type: 'application/pdf;charset=UTF-8'
  39. })
  40. pdfData = window.URL.createObjectURL(blob)
  41. this.pdfUrl = `${this.viewerUrl}?file=${decodeURIComponent(pdfData)}`;
  42. },
  43. })
  44. //若没有pdf网络地址跨域问题可直接加载pdf
  45. // this.pdfUrl = `${this.viewerUrl}?file=${decodeURIComponent(url)}`;
  46. },
  47. }
  48. </script>

第四步  实际场景中获取pdf地址并跳转至预览页

  1. uni.navigateTo({
  2. url:`/pages/index/preview?src=${encodeURIComponent(pdf网络地址)}`
  3. })

预览效果

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

闽ICP备14008679号