预览PDF
方法一:可以使用wx.downloadFile下载得到一个临时文件再用wx.openDocument预览,在手机端是用微信内置工具打开文件(如果文件异常,将唤起使用第三方应用打开界面),在PC端会调用相关应用打开文件,代码如下:
方法二:使用web-view嵌入h5页面,使用h5的方式预览文件,如使用pdfh5.js插件。方法一的预览只能展示文件,方法二使用h5的方式,可以给预览页面添加附加信息,如添加按钮。
下载PDF
Web-view可以嵌入h5页面,就想是否可以使用h5方式a.click下载文件。尝试发现代码的执行不会抛出错误,但是没有下载成功的提示,手机调试去翻文件管理没有找到文件。
方法一:使用wx.downloadFile下载得到一个临时文件,然后使用wx.saveFile去保存这个临时文件,代码如下:
此方法的缺陷是,下载的文件不会在调试手机(版本:oneplus 9t)的文件管理中展示,需要去翻微信相应的路径去找文件,不同手机型号对应路径可能不同。wx.downloadFile配置filePath为wx.env.USER_DATA_PATH可以在“我的手机/Android/data/com.tencent.mm/MicroMsg/wxanewfiles/”文件夹下查找,不同手机的下一级文件夹不同,需要一个个文件夹翻。本来打算,使用微信小程序打开下载文件对应的文件夹,在文档没有找到对应的api,就放弃了。
感觉不是每个人都知道要这样去找到已下载的文件,在手机的文件管理没有找到就是文件没有下载成功了。
方法二:可以使用wx.downloadFile下载得到一个临时文件再用wx.openDocument预览,在手机端是用微信内置工具打开文件,预览界面有提供相关功能(重点:需为wx.openDocument的showMenu设置为true)。
点击保存到手机,可以在手机的文件管理查找到已下载的文件。缺陷是有的用户未必知道要先点头部的三点来下载,想在打开文件成功的时候去触发菜单栏,但微信开发文档里也没有找到相关配置。