使用cordova开发移动端APP,经常会使用到访问本地文件的情况。
访问本地文件其实有两种:
1:访问APP自身本地文件,下载来的文件,如果存储在这个空间,在其他APP内是无法访问到的。
2:访问手机本地内存,直接将下载的文件保存在手机内存中。
两者区别:APP自身内存是不需要获取手机权限的,访问手机本地内存,必须先获取手机相应的读写权限。
这里我们需要使用到的是:
cordova-plugin-permission 插件
直接安装
cordova plugin add cordova-plugin-permission
官网链接:https://www.npmjs.com/package/cordova-plugin-permission
代码如下
function getPermission(permission) {
return new Promise((resolve, reject) => {
permission = Array.isArray(permission) ? permission : [permission];
let Permission = window.plugins.Permission;
Permission.has(
permission,
function(results) {
let arrP = [];
for (let i = 0; i < permission.length; i++) {
if (!results[permission[i]]) {
let prm = new Promise((resolvel, rejectl) => {
Permission.request(
permission[i],
function(results) {
if (results[permission]) {
resolvel();
} else {
rejectl();
}
},
alert
);
});
arrP.push(prm);
}
}
Promise.all(arrP)
.then(() => {
resolve();
})
.catch(() => {
reject();
});
},
alert
);
});
}
直接调用方法:getPermission(["权限1","权限2"]).then();
文件读写权限:
读写存储卡
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE
装载和卸载文件系统
android.permission.MOUNT_UNMOUNT_FILESYSTEMS