最近做了幾個(gè)小程序,客戶(hù)的需求的讓用戶(hù)在小程序里下載文件,我就去微信開(kāi)發(fā)者中心看文檔,發(fā)現(xiàn)有wx.downloadFile方法可供下載文件,當(dāng)時(shí)覺(jué)得原來(lái)下載文件原來(lái)很簡(jiǎn)單,等閱讀清楚后才發(fā)現(xiàn)沒(méi)那么簡(jiǎn)單,甚至可以說(shuō)微信小程序除了能直接下載圖片以外(即使是下載圖片也要用戶(hù)授權(quán)同意保存才能下載),其他的文件一律無(wú)法下載的,下載圖片可以用wx.saveImageToPhotosAlbum方法,首次調(diào)用時(shí)會(huì)讓你授權(quán)是否同意保存,所謂的wx.downloadFile方法是用來(lái)把文件下載到小程序緩存里,然后你不可以直接保存到手機(jī)里,而只能對(duì)這個(gè)文件進(jìn)行操作,例如我們用wx.downloadFile方法下載一個(gè)zip文件,下載后可以對(duì)這個(gè)zip文件進(jìn)行解壓,獲取解壓后的zip文件夾里的文件列表和文件路徑等,但這些都沒(méi)有用,因?yàn)橛脩?hù)需要的是把zip文件下載到手機(jī)里,而不是在小程序里去查看zip里面的內(nèi)容,所以如果要實(shí)現(xiàn)下載的功能,如下圖所示:

我們只能讓用戶(hù)點(diǎn)擊下載時(shí),可以用 wx.getClipboardData方法復(fù)制文件的鏈接地址,然后把復(fù)制的文件地址粘貼到手機(jī)瀏覽器里打開(kāi),再下載文件,如下圖所示:

雖然微信小程序不支持直接的下載,但卻支持多種常見(jiàn)的文件類(lèi)型可以用wx.openDocument方法直接預(yù)覽,如果最常見(jiàn)的pdf,docx,excel等文件,都是可以直接打開(kāi)的,并且能兼容IOS和安卓的版本,唯一的區(qū)別是安卓在預(yù)覽時(shí),點(diǎn)擊右上角的...可以直接將文件保存到手機(jī)里,如下圖所示:

而IOS手機(jī)也可以預(yù)覽,但無(wú)法下載保存到手機(jī)里。
總結(jié)一下:如果是讓用戶(hù)下載圖片,可以使用wx.saveImageToPhotosAlbum方法讓用戶(hù)直接將圖片保存到手機(jī)里,如果是一些常用的文件,可以用wx.openDocument方法打開(kāi)文件預(yù)覽,如果是一些特殊的文件類(lèi)型,如果zip,rar等文件,建議使用復(fù)制文件鏈接到瀏覽打開(kāi)下載。
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://pdcharm.com/news/6918.html