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')

