更新记录

1.0.4(2024-09-28)

修复 选择文件 时候重复多次选择后,会提示被移除的监听

1.0.3(2024-04-28)

修复页面销毁后再获取赋值后页面数据不更新的bug

1.0.2(2024-04-03)

添加视频播放案例说明

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.07,Android:5.0,iOS:不支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

原生安卓Android文件选择器 返回获取的文件内容 复制文件到指定目录

需要打包自定调试包才能测试

不保证所有的安卓手机都兼容,自己用的两个安卓手机测试是没问题的

你手机沙盒的详细地址去看官方给的介绍文档 https://ask.dcloud.net.cn/article/36199

vue2需要自己去修改下写法,以下是vue3的案例

需要先打包为自定义调试包,才可以调试

调用插件 :

import {
    UTSchoosefile,
    UTScopyfile,
    UTSgetStorage,
    UTStorefile
} from "@/uni_modules/mushan-choosefile";

完整页面调用案例

<template>
    <view>
        <button @click="onUTSchoosefile">打开文件选择</button>
        <button @click="onUTScopyfile">复制文件</button>
        <button @click="onUTStorefile">文本数据保存为txt文件</button>
        <button @click="onUTSgetStorage">获取手机的内部存储地址和外部存储地址</button>
        <video :src="vdedioUrl" style="width: 100%; height: 200px;"></video>
    </view>
</template>

<script setup>
    import {
        onShow,
        onReady,
        onReachBottom,
        onPullDownRefresh,
        onShareAppMessage
    } from '@dcloudio/uni-app';
    import {
        getCurrentInstance,
        ref,
        reactive,
        inject,
        computed,
        onMounted
    } from 'vue';

    import {
        UTSchoosefile,
        UTScopyfile,
        UTSgetStorage,
        UTStorefile
    } from "@/uni_modules/mushan-choosefile";

    //打开选择器选择后直接获取文件内容、名称、大小,返回不了当前文件地址,安卓10以上的内容限制问题,有沙箱空间会返回虚拟路径解析要做很多版本兼容,高级权限获取又比较麻烦,需要的话建议吧文件复制到自己指定目录再去操作。https://ask.dcloud.net.cn/article/36199 安卓10+对应的说明
    //PDF文件的拿到返回的内容后 自己找pdfjs去解析内容
    function onUTSchoosefile(){
        UTSchoosefile((res)=>{
            let data = JSON.parse(res)
            console.log(data)

            if(data.msg == '获取成功'){
                console.log(data.name)
                console.log(data.size)
                console.log(data.content)
            }

        })
    }

    //获取手机对应的外部和内部存储地址路径,如果想知道那个更详细去地址去看官方文档给的地址https://ask.dcloud.net.cn/article/36199 上面有详细的说明
    function onUTSgetStorage(){
        UTSgetStorage((res)=>{
            let data = JSON.parse(res);
            console.log(data);
        })
    }

    //打开选择器选择文件后,点击选择文件会复制到对应的目录下面和对应的名称,第一个参数是对应的地址必填,第二个参数是要复制过去的文件名称,如果不填写名称就默认是复制文件的名称 https://ask.dcloud.net.cn/article/36199

    //比如复制后可以直接进行播放,视频播放需要你自己项目选择了添加了视频模块 VideoPlayer,uni.UNID5C9D77 是你自己的项目包名,__UNI__D5C9D77是你该项目的appid,详细去看https://ask.dcloud.net.cn/article/36199

    let vdedioUrl = ref('')
    function onUTScopyfile(){
        UTScopyfile('/storage/emulated/0/Android/data/uni.UNID5C9D77/.__UNI__D5C9D77/documents','',(res)=>{
            let data = JSON.parse(res)
            console.log(data)

            if(data.msg == '文件复制成功'){
                console.log(data.file)
                console.log(data.msg)
                console.log(data.filePath)
                vdedioUrl.value = data.filePath;
            }

        })
    }

    //文本数据保存为txt的文本文件
    function onUTStorefile(){
        let parame = {
            textData: '0x53,0x5a,0x50,0x53,0x43,0x31,0x30,0x30,0x30,0x30,0x56,0x31,0x30,0x30,0xf4,0x01,0xb8,0x0b,0xfa,0x00,0xd0,0x02,0xa4,0x01,0x08,0x02,0xb6,0x03,0x3c,0x00,0x80,0xff',
            fileName: 'blueText.txt',
        }
        UTStorefile(parame,(res)=>{
            let data = JSON.parse(res)

            if(data.msg == '成功'){
                console.log(data)
            }

        })
    }

</script>

<style>

</style>

隐私、权限声明

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

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

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

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

暂无用户评论。

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