更新记录
0.1.0(2023-11-30)
- 基于原生Android开发的 uni-app 插件,通过原生文件管理器获取文件目录;
- 解决下载或复制的文件无法保存到指定目录;
- 在下载前指定保存目录;
- 获取文件的真实保存路径;
- 有部分路径无法获取,提示“为保护您的隐私,请选择其他文件夹”,此为安卓系统保护原因;
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
dodo-uniplugin-fileSelector
插件测试平台
-
测试平板:PET_A133、PET_RK3568;
-
测试手机:vivo、小米、摩托罗拉;
-
测试系统:Android 12;
-
设备不需要root;
-
Android 设备具有 USB Host 或 OTG 接口;
功能简介
- 基于原生Android开发的 uni-app 插件,通过原生文件管理器获取文件目录;
- 解决下载或复制的文件无法保存到指定目录;
- 在下载前指定保存目录;
- 获取文件的真实保存路径;
- 有部分路径无法获取,提示“为保护您的隐私,请选择其他文件夹”,此为安卓系统保护原因;
使用方法
引用
// #ifdef APP-PLUS
const fileSelector = uni.requireNativePlugin("dodo-uniplugin-fileSelector")
// #endif
API
-
选择文件夹
fileSelector.selectDirectory();
-
选择文件
fileSelector.selectFile();
-
获取选择的文件/文件夹(注:VUE3语法需先import onShow)
import {onShow } from '@dcloudio/uni-app';
onShow((options) => {
let resFile = ''
fileSelector.getPath(
(res) => {
if (res?.success) {
resFile = res.msg
} else {
uni.showToast({
icon: 'none',
title: '获取失败,请重试',
duration: 2000
});
}
})
})
- 备注(调用代码见示例项目)
1.选择内置储存文件时,获取到的目录为“/document/primary:app-update.apk”或“/document/raw:/storage/emulated/0/Download/app-update.apk”等
2.选择内置储存目录时,获取到的目录为“/tree/primary:media”或“/tree/raw:/storage/emulated/0/Download”等
3.选择U盘文件时,获取到的目录为“/document/88F7-88B8:app-update.apk”等
4.选择U盘目录时,获取到的目录为“/tree/88F7-88B8:media”等
5.设备不同时,前缀“/document/primary”、“/tree/primary”、“/document/88F7-88B8”、“/tree/88F7-88B8”可能也不同
6.使用插件“https://ext.dcloud.net.cn/plugin?id=14979”获取真实的储存设备,替换以上的前缀即可获取到真实的路径
7.如:使用插件获取平板内置储存为“/storage/emulated/0”<br>
7.1 替换后真实文件路径:“/document/primary:app-update.apk” --》“/storage/emulated/0/app-update.apk”
7.2 替换后真实目录路径:“/tree/primary:media” --》“/storage/emulated/0/media”
8.如:使用插件获取U盘为“/storage/88F7-88B8”
8.1 替换后真实文件路径:“/document/88F7-88B8:app-update.apk” --》“/storage/88F7-88B8/app-update.apk”
8.2 替换后真实目录路径:“/tree/88F7-88B8:media” --》“/storage/88F7-88B8/media”