一、插件咨询和查看
Uniapp插件市场 - 原生 Android IOS 文件选择插件
有问题咨询QQ群 - 838332280
一定要添加权限:
Android:
READ_EXTERNAL_STORAGE :读取存储权限
WRITE_EXTERNAL_STORAGE:写入存储权限
IOS:
NSPhotoLibraryUsageDescription:是否允许App访问您的相册
NSPhotoLibraryAddUsageDescription:是否允许App访问您的相册
NSAppleMusicUsageDescription:是否允许App访问您的媒体资料库
二、类型说明
//文件类型枚举
enum EasyFileType {
Any = 'any',
Media = 'media',
Image = 'image',
Video = 'video',
Audio = 'audio',
Custom = 'custom'
}
三、API说明
pickFiles(Object config)
-
功能描述:
文件选择。
-
传入参数:
参数类型 参数名称 参数含义 EasyFileType type 文件类型 String allowedExtensions 筛选文件后缀 Bool allowMultiple 多选 - EasyFileType为Media、Image、Video、Audio生效,单选 - EasyFileType为Any、Custom生效。 -
参数例子:
{ 'type': EasyFileType.Image.toString(), //选择文件类型 'allowedExtensions': 'pdf,docx', //type为custom时生效,筛选文件后缀 'allowMultiple': true,//多选,单选 }
clear()
-
功能描述:
清理缓存。
注意:allowMultiple = true 时,Android 选择目录多选时,长按文件才可以多选。
四、使用案例
<template>
<view class="content">
<button type="primary" @click="filePick">选择文件</button>
<view>
-------------------------
</view>
<view class="textbox">
<text>{{result}}</text>
</view>
</view>
</template>
<script setup lang="ts">
import {
onUnmounted,
ref
} from "vue";
var filePickerModule = uni.requireNativePlugin("RLUni-EasyFilePickerModule")
enum EasyFileType {
Any = 'any',
Media = 'media',
Image = 'image',
Video = 'video',
Audio = 'audio',
Custom = 'custom'
}
var result = ref('');
function filePick() {
// 调用异步方法
filePickerModule.pickFiles({
'type': EasyFileType.Video.toString(),
'allowedExtensions': 'pdf,docx',
'allowMultiple': true,
},
(ret: any) => {
result.value = JSON.stringify(ret)
})
}
onUnmounted(() => {
filePickerModule.clear()
})
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.textbox {
width: 100%;
word-wrap: break-word;
}
</style>