更新记录
1.0.1(2023-01-04)
对部分android手机的兼容
1.0.0(2023-01-03)
1.获取android公共目录文件列表 2.指定路径获取文件列表 3.指定格式返回文件列表 4.获取android/data 目录列表
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 9.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原生插件配置”->”云端插件“列表中删除该插件重新选择
引入插件
var readFile = uni.requireNativePlugin("xmy-read-file");
权限申请
访问公共目录需要存储权限,微信、QQ等其他应用需要申请android/data目录的访问权限
公共目录权限申请、检查 如果拥有权限返回 hasPermission: true 没有权限会向用户申请权限
readFile.checkFileManagePermission((res) => {
})
android/data目录权限申请、检查 如果拥有权限返回 hasPermission: true 没有权限会向用户申请权限
readFile.checkDataPermission((res) => {
})
访问公共目录
path: 指定目录查询,如果全查询传 null
args: 获取指定格式的文件列表,可以传 null
readFile.getAllFiles({
path: path,
args: [format]
},(res) => {
})
访问QQ目录
path: qq接收文件的目录:/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/QQfile_recv
readFile.getFileList({
path: path,
},(res) => {
})
访问微信目录
path: 微信接收文件的目录:/storage/emulated/0/Android/data/com.tencent.mm/MicroMsg/hash/attachment
路径中的 hash 不固定每个用户的名称都不一致,如果访问 hash/attachment 目录下文件需要传 isHash: true 并且 path: /storage/emulated/0/Android/data/com.tencent.mm/MicroMsg 访问微信其他目录 isHash: false path 写具体的路径即可
readFile.getFileList({
path: path,
isHash: false
},(res) => {
})
访问其他App目录
path: 可以在 android/data 目录下找到 App 的 path
readFile.getFileList({
path: path,
},(res) => {
})
返回数据格式
[
{
lastModified: 上次修改日期,时间戳
size: 文件大小
name: 文件名称,默认做了 URL 解码
path: 文件路径
format: 文件格式
}
]