原生小程序在ios打不开在线预览文件的问题

描述问题: 小程序再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()
                }
            })`