收藏
回答

wx.openDocument偶尔打不开文件

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug iOS 9.3.3 iPhone 6s 最新

- 当前 Bug 的表现(可附上截图)

wx.openDocument,成功调用的情况下,偶尔会打开不了文件,再次点击才能打开,开发者工具预览模式下没发现,真机调试有概率触发

- 提供一个最简复现 Demo


wxml:


<view class="container">

 

  <view class="uploader" bindtap="downloadPdf" style="height:100rpx; line-height: 100rpx;">

    <text>查看pdf</text>

  </view>

 

</view>


js:

downloadPdf: function (url, id) { // 查看pdf

    wx.downloadFile({

      url: 'https://yjd.yxsjob.com/media/2019/1/16/f902367378ea4bfa97d995f08e1049c1/kgSbzLlWbNIxUPFphBNR.pdf',

      success: function (res) {

        const filePath = res.tempFilePath

        wx.openDocument({

          filePath: filePath,

          success: function (res) {

            // console.log('打开文档成功')

          }

        })

      }

    })

  },


最后一次编辑于  01-18  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 娇华
    娇华
    01-18

    fail(res){

    console.log(res)

    }


    看看呢

    01-18
    赞同
    回复 7
    • 平飞
      平飞
      01-18

      进入success,没有进入fail

      01-18
      回复
    • 娇华
      娇华
      01-18回复平飞

      是不是卸载QQ浏览器就正常?手机安装qq浏览器以后,openDocument没作用
      https://developers.weixin.qq.com/community/develop/doc/0006402db04108d660e7dd77451400

      01-18
      回复
    • 平飞
      平飞
      01-18回复娇华

      手机里本来就没装qq浏览器

      01-18
      回复
    • 娇华
      娇华
      01-18回复平飞

      微信版本是多少呀?我这边用几台ios打开都是正常的。


      复现的时候,麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点

      01-18
      回复
    • 平飞
      平飞
      01-19回复娇华

      微信号:pingfei617 1月19日 15:36

      01-19
      回复
    查看更多(2)
  • 核心已转储
    核心已转储
    01-25

    wx.downloadFile({

    url: e.currentTarget.dataset.pdf,

    header: {},

    success: function(res) {

    var filePath = res.tempFilePath;

    console.log(res);

    if (res.statusCode == 404) {

    wx.showToast({

    title: '获取文件失败',

    icon: 'success',

    duration: 2000

    })

    } else {

    wx.openDocument({

    filePath: filePath,

    fileType: 'pdf',

    success: function(res) {

    console.log(res);

    wx.showToast({

    title: "打开成功",

    icon: 'success',

    duration: 2000

    })

    },

    fail: function(res) {

    wx.showToast({

    title: "打开失败",

    icon: 'success',

    duration: 2000

    })

    },

    complete: function(res) {

    console.log(res);

    }

    })

    }

    },

    fail: function(res) {

    console.log('文件下载失败');

    },

    complete: function(res) {},

    })


    01-25
    赞同
    回复