收藏
回答

downloadTask.onProgressUpdate在安卓系统不工作

问题模块
API和组件


安卓真机下,downloadTask.onProgressUpdate并不能显示进度条。但是在iphone真机下是可以的。


代码附上:


    const downloadTask = wx.downloadFile({

      url: url,

      success: function (res) {

        wx.showToast({

          title: '下载完成',

          icon: 'success',

          duration: 1000

        });


        _this.setData({

          displayProgressBar: false,

          downloadPercent: 0

        });


        var filepathtemp = res.tempFilePath;

        if (app.debug.dev) {

          console.log('res :', res);

          console.log('download temp filepath:', filepathtemp);

        }


        //自动打开文件

        setTimeout(function () {

          wx.openDocument({

            filePath: filepathtemp,

            success: function (res) {

              if (app.debug.info) {

                console.log('success:', "打开文档成功");

              }

            },

            fail: function (res) {

              if (app.debug.info) {

                console.log('fail:', res);

              }

            },

            complete: function (res) {

              if (app.debug.info) {

                console.log('complete:', res);

              }

            }

          })

        }, 1000) //延迟时间


        // //对临时资源进行永久保存

        // wx.saveFile({

        //   tempFilePath: filepathtemp, //tempFilePath想要保存的文件的临时地址  

        //   success: function (res) {

        //     console.log("保存成功啦")

        //     console.log(res) //res是保存成功的返回值,包含存储路径等

        //     var savedPath = res.savedFilePath;

        //   }

        // })


      },

      fail: function () {

        if (app.debug.info) {

          console.log('下载失败', e);

        }


        wx.showToast({

          title: '下载失败',

          icon: 'loading',

          duration: 1000

        });


        _this.setData({

          displayProgressBar: false,

          downloadPercent: 0

        });

      },

      complete: function () {

        console.log('complete');

        _this.setData({

          displayProgressBar: false,

          downloadPercent: 0

        });

      },

    });


    // when the progress is updated

    // monitoring the download progress

    downloadTask.onProgressUpdate((res) => {

      console.log('下载进度', res)

      console.log('下载进度', res.progress)

      console.log('已经下载的数据长度', res.totalBytesWritten)

      console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)

      this.setData({

        downloadPercent: ((res.totalBytesWritten / totalbytes) * 100).toFixed(2)  //toFixed(2)取小数点后两位,更新wxml中progress组件的进度值  

      })

    });



在安卓真机下,downloadTask.onProgressUpdate好像并没有被触动。

测试机型:小米5、坚果pro2、华为8

微信:6.5.22




最后一次编辑于  2017-11-29
回答关注问题邀请回答
收藏

5 个回答

  • PerfectWorld
    PerfectWorld
    2017-12-19

    遇到同样的问题了,downloadTask.onProgressUpdate不工作,不知道为什么,在开发者工具里没有问题,但是在安卓真机上就不行

    2017-12-19
    赞同 2
    回复
  • Donvy_y
    Donvy_y
    11-28

    oppo机也不行




    11-28
    赞同
    回复
  • 青青子衿
    青青子衿
    2018-09-06

    同遇到该问题,IOS 返回的数据也不准确。

    2018-09-06
    赞同
    回复
  • PerfectWorld
    PerfectWorld
    2018-01-26

    微信的开发团队不给解决的咯

    2018-01-26
    赞同
    回复
  • 叫什么名字_
    叫什么名字_
    2018-01-26

    楼主咋解决的?急急急...

    2018-01-26
    赞同
    回复