收藏
回答

wx.chooseMessageFile extension android

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android 安卓9 华为mete9 7.0.5

- 当前 Bug 的表现


使用 wx.chooseMessageFile 并将 extension 参数 指定为 extension: ['doc', 'ppx', 'xls', 'xlsx', 'docx', 'pdf', 'pptx'],

然后从微信文件选择一个文件名如:5d254206147ee.dOC的文件,  ios 端 可正常选到该文件(能筛选), Android端 选不到该文件(不能筛选)


- 预期表现

Android端  使用 该参数 extension: ['doc', 'ppx', 'xls', 'xlsx', 'docx', 'pdf', 'pptx'], 能选取到 类似 .dOC,.DOC,.doC,Doc 的文件


- 复现路径

- 提供一个最简复现 Demo



wx.chooseMessageFile({
 count: 1,
 type: 'file',
 extension: ['doc', 'ppx', 'xls', 'xlsx', 'docx', 'pdf', 'pptx'],
 success (result) {
 
   const tempFilePaths = result.tempFiles

   if (tempFilePaths.length > 0) {
     // 选择文件成功
     })
   } else {
      // 选择文件失败
    }

 }
})


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

3 个回答

  • L.Y
    L.Y
    2020-07-21

    偶然翻出这个问题,发现有人遇到同样问题。

    自己当时写码先兼容了。。。这么久了,不知道官方有没有修复,

    现把兼容代码放出来,需要的可以参考

    // 打开微信客户端
      wechatClick () {
        let ex = ['doc', 'ppt', 'xls', 'xlsx', 'docx', 'pdf', 'pptx']
        console.log(ex)
        let extension = []
        ex.map((v, i) => {
          extension = extension.concat(ebGenAdc(v))
        })
    ​
        console.log(extension)
        Taro.chooseMessageFile({
          count: 1,
          type: 'file',
          extension: extension,
          success (result) {
            console.log(result)
          }
        })
      }
    ​
    /**
     *
     * @param str
     * @returns {Array}
     */
    const ebGenAdc = (str) => {
      let guide = str.split(/([a-zA-Z]+)/).filter(x => !!x).map(x => /^[a-zA-Z]+$/.test(x) ? [x.length, true] : [x.length, false])
      let length = guide.reduce((result, current) => result + (current[1] ? current[0] : 0), 0)
    
    
      let result = []
    
    
      for (let i = 2 ** length; i--;) {
        let bin = i.toString(2)
        bin = Array.from('0'.repeat(length - bin.length) + bin)
        for (let i = 0; i < guide.length; i++) {
          if (!guide[i][1]) {
            let index = 0
            for (let j = 0; j < i; j++) {
              index += guide[j][0]
            }
            bin.splice(index, 0, ...'0'.repeat(guide[i][0]).split(''))
          }
        }
        for (let i = str.length; i--;) {
          if (Number(bin[i])) {
            bin[i] = str[i].toUpperCase()
          } else {
            bin[i] = str[i].toLowerCase()
          }
        }
        result.push(bin.join(''))
      }
    
    
      return result
    }
    
    
    2020-07-21
    有用
    回复
  •  Gentle Friend ℃
    Gentle Friend ℃
    2019-08-30

    遇到楼主同样的问题,微信版本7.0.6,一加5,安卓9

    2019-08-30
    有用
    回复 1
    • L.Y
      L.Y
      2020-07-22
      2020-07-22
      回复
  • 是小白啊
    是小白啊
    2019-07-11

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-07-11
    有用
    回复
登录 后发表内容