javascript高级精简版

vue打包app做文件下载功能

2020-06-08  本文已影响0人  淡蓝天风

// 全局封装的下载方法

Vue.prototype.downLoad = function (data) {

  const u = navigator.userAgent

  //android终端或者uc浏览器

  const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1

  if (isAndroid) {

    var dtask = plus.downloader.createDownload(data.url, {})

    dtask.addEventListener('statechanged', (d, status) => {

      switch (d.state) {

        case 1: // 开始

          Toast('加载中...');

          break;

        case 2: // 已连接到服务器

          Toast('链接到服务器...');

          break;

        case 3: // 已接收到数据

          var a = Math.floor(d.downloadedSize / d.totalSize * 100) + '%'

          Toast(a);

          break;

        case 4: // 下载完成

          // 下载保存路径到图库

          plus.gallery.save(

            d.filename,

            () => {

              Toast.success('下载完成!');

              plus.nativeUI.closeWaiting()

              plus.runtime.openFile(d.filename);

            })

          break;

      }

    })

    dtask.start();

  } else {

    var dtaskIos = plus.downloader.createDownload(data.url, {});

    dtaskIos.addEventListener('statechanged', (d, status) => {

      switch (d.state) {

        case 1: // 开始

          Toast('加载中...');

          break;

        case 2: // 已连接到服务器

          Toast('链接到服务器...');

          break;

        case 3: // 已接收到数据

          var aIos = Math.floor(d.downloadedSize / d.totalSize * 100) + '%'

          Toast(aIos);

          break;

        case 4: // 下载完成

          Toast.success('下载完成!')

          plus.nativeUI.closeWaiting()

          plus.runtime.openFile(d.filename)

          break

      }

    })

    dtaskIos.start();

  }

}

ios需要配置

        提交苹果App store审核强制要求ATS,及访问非HTTPS服务器地址导致文件下载、上传、ajax无法正常工作 的问题 - DCloud问答

需要做配置处理
上一篇下一篇

猜你喜欢

热点阅读