更新记录
1.0.1(2023-04-21)
1.0.1版本:适配Android13
1.0.0(2022-07-20)
安卓文件选择插件第一版
平台兼容性
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原生插件配置”->”云端插件“列表中删除该插件重新选择
文件选择插件示例APK
更新说明
1.0.1版本:适配Android13
引入插件
const L_FilePicker = uni.requireNativePlugin("Luna-FilePicker");
1、权限接口
1.1 判断并授权所有文件的管理权限
getFileManagePermission(res=>{
console.log(res);
res={
"hasPermission":true/false
}
});
1.2 获取读写手机存储权限
checkPermissions({
permissionList:["android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.READ_EXTERNAL_STORAGE"], //格式:["权限1","权限2"],必填
},res=>{
console.log(res);
res={
"code":0,
"hasPermission":true,
"message":"权限申请成功"
}
res={
"code":1,
"hasPermission":false,
"message":"权限申请失败",
"deniedPermission":[],//未通过权限列表
}
res={
"code":2,
"hasPermission":false,
"message":"权限被拒绝",
"deniedPermission":[],//未通过权限列表
}
});
1.3 检查是否具有Android/data文件夹权限并申请授权
Android13无法获取Android/data文件夹权限
checkAndroidDataPermission(res=>{
console.log(res);
res={
"hasPermission":true/false
}
});
1.4 检查是否具有Android/data、Android/obb子目录权限并申请授权
checkAndroidDataSubPermission({
path:"" //例如QQ目录:/storage/emulated/0/Android/data/com.tencent.mobileqq/
},res=>{
console.log(res);
res={
"hasPermission":true/false
}
});
2、文件选择接口
2.1 选择文件
openFilePicker({
startPath:'', //指定文件选择初始路径,默认值:根目录(/storage/emulated/0),可选
statusBarColor:'#03A9F4',//设置主题色,目的是与项目主题色保持一致,默认值:#03A9F4,可选
statusBarTextColor:'white',//设置状态栏文字颜色,值有:white/black,默认值:white ,可选
onlyReturnPath:true,//是否仅返回被选择文件的路径,默认值:true,可选
},res=>{
console.log(res);
res={
"code": 0,
"message": "获取成功",
"data":"选择的文件信息"
}
//onlyReturnPath = true
data=["被选择文件1的路径","被选择文件2的路径"]
//onlyReturnPath = false
data=["{fileName='com.miui.mishare.connectivity', isFile=false, filePath='/storage/emulated/0/Android/data/com.miui.mishare.connectivity', date='2020-08-10 06:51:04', size='null', childCount=1}","{}"]
})
2.2 分类选择文件
OpenFileCategoryPicker({
appType:'QQ', //应用类型,值有:QQ/WECHAT,默认值:QQ,可选
statusBarColor:'#03A9F4',//设置主题色,目的是与项目主题色保持一致,默认值:#03A9F4,可选
statusBarTextColor:'white',//设置状态栏文字颜色,值有:white/black,默认值:white ,可选
onlyReturnPath:true,//是否仅返回被选择文件的路径,默认值:true,可选
},res=>{
console.log(res);
res={
"code": 0,
"message": "获取成功",
"data":"选择的文件信息"
}
//onlyReturnPath = true
data=["被选择文件1的路径","被选择文件2的路径"]
//onlyReturnPath = false
data=["{}","{}"]
})
3、使用示例
const filePicker = uni.requireNativePlugin("Luna-FilePicker");
filePicker.openFilePicker({
startPath:'/storage/emulated/0', //指定文件选择初始路径,默认值:根目录(/storage/emulated/0),可选
statusBarColor:'#03A9F4',//设置主题色,目的是与项目主题色保持一致,默认值:#03A9F4,可选
statusBarTextColor:'white',//设置状态栏文字颜色,值有:white/black,默认值:white ,可选
onlyReturnPath:true,//是否仅返回被选择文件的路径,默认值:true,可选
},res=>{
console.log(res);
})
filePicker.OpenFileCategoryPicker({
appType:'QQ', //应用类型,值有:QQ/WECHAT,默认值:QQ,可选
statusBarColor:'#03A9F4',//设置主题色,目的是与项目主题色保持一致,默认值:#03A9F4,可选
statusBarTextColor:'white',//设置状态栏文字颜色,值有:white/black,默认值:white ,可选
onlyReturnPath:true,//是否仅返回被选择文件的路径,默认值:true,可选
},res=>{
console.log(res);
})