前言
这篇文章主要是为了总结一下最近做微信内置浏览器预览文件?(word和pdf)在不同操作系统的问题。在IPhone微信内置浏览器中,基本可以预览各式各样的文件格式,但是在安卓就不行了,打开文件地址就跳转到浏览器下载页面了。以下就是本人的踩坑之路。
~~敢问路在何方,路就在脚下
官网demo( mozilla.github.com/pdf.js/web/… ),其原理是绘制成canvas
解决方式
- PDF在ios和安卓的预览
- 安卓:PDF.JS(地址 github.com/mozilla/pdf… ) 来解析pdf文件(自己的页面,可以转发分享,通过JS-SDK设置)
- IOS: 微信自带的预览功能(不能分享,因为这个页面是微信自己的,所以改不了),也可以改成PDFJS来实现跟安卓一样的(微信本身的如果图文复杂的word预览也会有点错乱)
- Word在ios和安卓的预览
- 后端将word转成PDF文件,前端在通过PDF实现ios和安卓的预览
- 后端可以转换成图片,这样就可以直接渲染了
注:前端我暂时没找到好的办法将word转换成PDF?,所以通过后端转换来实现。后端用linux转的话如果图文比较复杂的话会出现图文错乱的问题,所以建议通过购买Window系统的服务器来转换(坑),也可以在阿里云市场购买服务(?不太推荐,还是有点小贵的)
PDFJS准备工作
- pdf.js可以从github上clone下来,然后本地gulp生成可用的pdf.js和pdf.worker.js(参考readme即可)。不过,本人推荐还是用npm安装,
npm install pdfjs-dist --S
,然后在项目中通过import PDFJS from 'pdfjs-dist
引用就可以用了 - pdf.js不能处理跨域文件和本地文件,所以本地调试的时候应该请求服务器的文件