小程序下载和预览相关功能封装

微信小程序开发的过程中遇到文件预览下载转发的相关需求,然后做了一些封装,针对小程序遇到一些bug和问题做一下记录

一、预览相关:

关于预览视频和图片的时候有多种api, wx.previewMedia这个可以同时支持图片和视频预览,个人感觉单纯小程序的话,和适合做预览.不过**缺点是不支持企业微信**,因为遇到的需求是需要在企业微信小程序里预览等,所以舍弃此方法
图片预览用的:**wx.previewImage**;
视频因为不支持在企业微信,故而取消此功能;
文件预览用的:** wx.openDocument**打开文档预览;

二、下载相关:

关于下载也分为下载文档,图片,视频;
下载遇到的问题是在安卓真机测试下载的文件经过时间戳处理,文件名在手机中层级较深也很难找,在ios没有反应;然后用了折中的方案,就是长按转发给好友来实现保存;
然后用文件流结合以下

const fs = wx.getFileSystemManager();

图片下载用的:**wx.saveImageToPhotosAlbum**;
视频下载用的**wx.saveVideoToPhotosAlbum**;
文件下载**fs.saveFile**;

二、根据需求封装了以下功能

let {
   base_url} = require('./request')
function downloadFile(data={
    },format,isPreview=true,urlFlag=true) {
   
  let url = ''
  if(urlFlag==true){
   
    url = '/common/download'
  }else if(urlFlag==false){
   
    url = '/common/wxDownload'
  }else{
   
    url = '/wx/box_info/downLoadBoxFile'
  }
  if(isPreview) wx.showLoading({
   title: '正在打开文件…'})
  // else 
  if(url=='/common/wxDownload'){
   
    wx.showLoading({
   title: '正在发送…'})
   let urles = base_url + url;
    wx.$http.get(urles,data).then(res => {
   
      wx.hideLoading()
      if(res.code==200){
   
        wx.showToast({
   
          title: res.msg,
          icon: 'none',
          duration: 2000//持续的时间
        })
      }else{
   
        wx.showToast({
   
          title: '请稍后刷新重试',
          icon: 'none',
          duration: 2000//持续的时间
        })
      }
    }).catch((error)=>{
   
      wx.hideLoading()
      wx.showToast({
   
        title: '发送失败,请稍后再试',
        icon: 'none',
        duration: 2000//持续的时间
      })
    })
  }else{
   
    wx.showLoading({
   title: '正在加载文件…'})
    wx.request({
   
      url: base_url + url,
      header: {
   
        "content-type": "application/json"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值