Android 文件选择器

必看

我只是把网络上的Android代码进行修改,使其能够在uni-app上运行,至于一些手机选择了后没有返回路径,我也没有什么办法解决,抱歉。 我这里只是提供了一个思路,有动手能力的还请看Android源码修改,此组件也不会在更新。

说明

通过native.js 调用系统自带的文件管理器选择文件并返回路径,只支持Android 平台,其它平台不支持

  1. 这是Android OS 自带的文件管理器,界面无法自定义
  2. 如果手机精简或停用了系统自带的文件管理器,可能回无效
  3. 上传文件可直接调用uni.uploadFile,如果上传不成功,尝试使用 plus.io 将复制到临时目录在上传
  4. 不支持IOS、小程序、H5
  5. 我测试的系统是安卓原生系统,一切正常。对于国产各种定制ROM,我不保证有效,有问题还请看源代码解决

1.引入组件

// template 使用
<tki-file-manager ref="filemanager" @result="resultPath"></tki-file-manager>
// 普通引入组件
import tkiFileManager from "@/components/tki-file-manager/tki-file-manager.vue"

// 注册组件
components: {
    tkiFileManager
},

2.方法

_openFile Function

_openFile 打开系统自带文件管理器

3.回调

result Function

@result="resultPath" 返回所选文件路径

4.示例

<template>
    <view class="content">
        <button type="primary" @tap="openFile">打开文件选择器</button>
        <view>文件路径为:</view>
        <view class="path">{{path}}</view>
        <tki-file-manager ref="filemanager" @result="resultPath"></tki-file-manager>
    </view>
</template>


import tkiFileManager from "@/components/tki-file-manager/tki-file-manager.vue"
export default {
    data() {
        return {
            title: '',
            path: '',
        }
    },
    methods: {
        openFile(){
            this.$refs.filemanager._openFile()
        },
        resultPath(e){
            this.path = e
        }
    },
    components: {
        tkiFileManager
    }
}

<style>
    .content {
        width: 100%;
        overflow: hidden;
    }
    .path{
        font-size: 14px;
        word-break:break-all;
    }
</style>

5.问题

有问题请说明安卓版本与手机型号,能解决的我就解决,不能解决的我也无能为力,毕竟我不会写原生,也不懂JAVA,代码是移植的,有兴趣的同学可以自行研究,源码在末尾

6.感谢

uni-app Android代码

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问