描述问题: 小程序再iOS上点击pdf/doc等格式的文件 会报错errMsg: “openDocument:fail filetype not supported”. 但是安卓上是正常的.
先放代码截图(url是在线文件的地址.)
打印如上图.
wx.openDocument方法报错 不支持此格式. 然后看下此时wx.downloadFile返回的tempFilePath是.bin格式,根据查询文档可知, wx.openDocument只支持 doc 格式docx 格式xls 格式xlsx 格式ppt 格式pptx 格式 pdf 格式… 此时尝试设置wx.openDocument的fileType属性 尝试是否可以成功打开.
添加之后发现可以成功打开pdf格式的文件啦.
当需求不止是pdf的时候 可以做以下判断
//url是在线文件地址let fileType =url.split('').reverse().join('').split('.').shift().split('').reverse().join('').toLowerCase(); // 下载文件方法 wx.downloadFile({ url: url, success: function (res) { var Path = res.tempFilePath //返回的文件临时地址,用于后面打开本地预览所用 wx.openDocument({ filePath: Path, fileType, success: function () { wx.hideLoading() }, fail: function (error) { } }) }, fail: function (res) { wx.hideLoading() } })`