更新记录
1.0.2(2022-12-26)
- 选择文件(iOS从系统"文件"app里选择文件)
- iOS保存文件到系统"文件"app里
- 浏览查看文件
- 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持
1.0.1(2022-12-22)
- 修复xcode 14打包错误问题
1.0.0(2022-12-20)
- 从iOS系统文件app里选择文件
- 保存文件到系统文件app里
- 浏览查看文件
- 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
常用文件处理插件
-
文件预览https://ext.dcloud.net.cn/plugin?id=17167
- 支持pdf/word/excel/ppt/图片,支持本地或在线文件
-
文件增删查改copy遍历https://ext.dcloud.net.cn/plugin?id=14130
- 文件读写、copy、move、遍历文件夹、是否存在、删除、重命名......等等
-
读取常用文件目录(包含U盘)https://ext.dcloud.net.cn/plugin?id=15243
- uniapp(_www、_doc、_download)
- Android(数据目录、文件目录、缓存目录、环境environment目录、SDCard目录、外接U盘)
- iOS(documentDirectory、temporaryDirectory、libraryDirectory、cachesDirectory)
- 从U盘读取或保存文件
-
读取本地相册图片视频音频https://ext.dcloud.net.cn/plugin?id=15711
- 获取相册图片、视频、音频文件
- 常用于自定义相册UI
功能
- 选择文件(iOS从系统"文件"app里选择文件)
- iOS保存文件到系统"文件"app里
- 浏览查看文件
- 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持
var fileMgr = uni.requireNativePlugin("wrs-fileMgr");
- 选择文件
switch (uni.getSystemInfoSync().platform) {
case 'android': {
this.androidCheckPermission(() => {
var params = {};
params.title = "请选择文件";
params.maxCount = -1; // 可选择的最大数量,-1表示不做限制
params.fileTabs = [{
title: "PDF",
suffixs: ["pdf"]
},
{
title: "DOC",
suffixs: ["doc", "docx", "dot", "dotx"]
},
{
title: "PPT",
suffixs: ["ppt", "pptx"]
},
{
title: "XLS",
suffixs: ["xls", "xlsx"]
},
{
title: "TXT",
suffixs: ["txt"]
},
{
title: "ZIP",
suffixs: ["zip", "rar"]
}
];
fileMgr.selectFile(params, (resp) => {
if (resp.code == -1) { // 完成
if (resp.fileArray) {
}
} else if (resp.code == 0) { // 取消
} else {
}
this.showMsg(JSON.stringify(resp));
});
});
}
break;
case 'ios': {
// documentTypes参考官网:https://stackoverflow.com/questions/52070937/setting-document-extensions-in-uidocumentpicker-in-swift/52071488
fileMgr.selectFile({
documentTypes: ["public.content", "public.text", "public.source-code ", "public.image",
"public.audiovisual-content", "com.adobe.pdf", "com.apple.keynote.key",
"com.microsoft.word.doc", "com.microsoft.excel.xls",
"com.microsoft.powerpoint.ppt", "org.openxmlformats.wordprocessingml.document",
"com.microsoft.excel.xls", "org.openxmlformats.presentationml.presentation"
],
allowsMultipleSelection: true // 是否允许多选
}, (resp) => {
// 选择的文件是临时缓存到iOS app 的缓存文件夹的,文件使用完后建议删除,避免本地空间占用
console.log("resp:" + JSON.stringify(resp));
if (resp.fileArray && resp.fileArray.length > 0) {
var filePath = resp.fileArray[0].filePath;
if (filePath) {
console.log("filePath:" + filePath);
uni.uploadFile({
url: 'http://172.16.14.68:8081/file/upload', //仅为示例,非真实的接口地址
filePath: filePath,
name: 'file',
formData: {
'user': 'test'
},
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
},
fail: (e) => {
console.log("上传失败:" + JSON.stringify(e));
}
});
}
}
});
}
break;
default:
break;
}
- 选择图片,仅支持Android
this.androidCheckPermission(() => {
var params = {};
params.title = "请选择图片";
params.maxCount = -1; // 可选择的最大数量,-1表示不做限制
params.enableVideoPicker = true; // 是否可以选择视频
params.enableImagePicker = true; // 是否可以选择图片
params.enableCameraSupport = true; // 是否显示拍照按钮
fileMgr.selectPhoto(params, (resp) => {
if (resp.code == -1) { // 完成
if (resp.fileArray) {
}
} else if (resp.code == 0) { // 取消
} else {
}
this.showMsg(JSON.stringify(resp));
});
});
- iOS保存文件到系统"文件"app里,仅支持iOS
var absPath = plus.io.convertLocalFileSystemURL('_www');
// Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
if (absPath.endWith('/')) {
absPath = absPath.substring(0, absPath.length - 1);
}
var url = absPath + "/static/test.pdf"
fileMgr.saveFile({
url: url
});
- 浏览单个文件,仅支持iOS,android里浏览文件可以参考腾讯X5 webview
var absPath = plus.io.convertLocalFileSystemURL('_www');
// Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
if (absPath.endWith('/')) {
absPath = absPath.substring(0, absPath.length - 1);
}
var url1 = absPath + "/static/test.pdf"
fileMgr.previewFile({
file: url1
});
- 同时浏览多个文件,仅支持iOS
var absPath = plus.io.convertLocalFileSystemURL('_www');
// Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
if (absPath.endWith('/')) {
absPath = absPath.substring(0, absPath.length - 1);
}
var url1 = absPath + "/static/test.pdf"
var url2 = absPath + "/static/test.docx"
fileMgr.previewFiles({
files: [url1, url2],
index: 0
});
支持定制,联系方式 QQ:252797991