webview input file 在uni-app中不能设置accept为具体的格式比如.docx不然点了之后就只显示相机

webview input file 在uni-app中不能设置accept为具体的格式比如.docx不然点了之后就只显示相机

产品分类

uniapp/App

PC开发环境操作系统

Mac

PC开发环境操作系统版本号

13.7

HBuilderX类型

正式

HBuilderX版本号

4.75

手机系统

Android

手机系统版本号

Android 15

手机厂商

小米

手机机型

红米K80Pro

页面类型

vue

vue版本

vue3

打包方式

云端

项目创建方式

HBuilderX

示例代码:

<template>  
  <view  
    :randomNum="randomNum"  
    :change:randomNum="AppUpload.openUpload({ randomNum })"  
  />  
</template>  
<script>  
export default {  
  data() {  
    return {  
      randomNum: 0,  
    };  
  },  
  onLoad() {},  
  methods: {  
    open() {  
      this.randomNum++;  
    },  
    eventEmit({ event, code, data }) {  
      console.log("eventEmit", { event, code, data });  
      this.$emit("change", { event, code, data });  
    },  
  },  
};  
</script>  
<script module="AppUpload" lang="renderjs">  
export default {  
    data() {  
        return {  
    }  
    },  
    mounted() {  

    },  
    methods: {  
        openUpload( data, ownerVm) {  
      const { randomNum } = data  
      if(!randomNum) {  
        return;  
      }  
      console.log('data',data)  
            let fileInput = document.createElement('input')  
            fileInput.setAttribute('type', 'file')  
            fileInput.setAttribute('accept', '.txt,.md,.markdown,.pdf,.html,.xlsx,.xls,.docx,.csv,.eml,.msg,.pptx,.ppt,.xml,.epub')  
            fileInput.click()  
            fileInput.addEventListener('change', e =>{  
                let file = e.target.files[0]  
       console.log(file)  
            })  
        },  
    callMethod(event, code, data){  
      this.$ownerInstance.callMethod('eventEmit', {event, code, data})  
    }  
    }  
}  
</script>  

更多关于webview input file 在uni-app中不能设置accept为具体的格式比如.docx不然点了之后就只显示相机的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于webview input file 在uni-app中不能设置accept为具体的格式比如.docx不然点了之后就只显示相机的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 的 Webview 中使用 input file 设置 accept 属性时,如果指定了具体格式如 .docx,在某些 Android 设备上确实可能只显示相机选项。这是因为系统文件选择器对 accept 属性的解析存在差异,尤其当 MIME 类型未明确指定时。

建议将 accept 属性改为使用 MIME 类型,例如:

fileInput.setAttribute('accept', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')

对于多格式支持,可以组合 MIME 类型和扩展名:

fileInput.setAttribute('accept', '.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document')
回到顶部