uni-app中html5+ plus.io 不允许读

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app中html5+ plus.io 不允许读

我在uniapp里面 用到了html5+ 使用 plus.io文件管理 createWriter.write 方法写文件的时候报 “不允许读” 请问什么原因

f0f269645bd42d31adf88a934558b251

1 回复

在uni-app中,如果你遇到 html5+ plus.io 不允许读取文件的问题,这通常是由于权限设置或者调用方式不正确导致的。以下是一个示例代码,展示了如何在uni-app中正确调用 html5+ plus.io 来读取文件内容,同时确保已经获取了相应的权限。

首先,确保你的项目已经正确配置了manifest.json中的权限请求。在manifest.json中,你需要添加对文件系统的访问权限:

"permissions": {
    "FileSystem": {
        "description": "访问文件系统"
    }
}

然后,在你的页面或组件中,你可以使用以下代码来请求权限并读取文件内容:

// 引入uni-app的API
const plus = window.plus;

// 请求文件系统权限
function requestFileSystemPermission() {
    return new Promise((resolve, reject) => {
        plus.android.requestPermissions(['android.permission.READ_EXTERNAL_STORAGE'], (event) => {
            if (event.deniedAlways) {
                console.error('用户拒绝且不再询问');
                reject('Permission denied forever');
            } else if (event.denied) {
                console.error('用户拒绝');
                reject('Permission denied');
            } else {
                console.log('权限获取成功');
                resolve();
            }
        });
    });
}

// 读取文件内容
async function readFileContent(filePath) {
    try {
        await requestFileSystemPermission();
        const fs = plus.io.resolveLocalFileSystemURL(filePath);
        fs.file((fileEntry) => {
            fileEntry.createReader().readAsText((textFile) => {
                console.log('文件内容:', textFile.data);
            }, (error) => {
                console.error('读取文件失败:', error);
            });
        }, (error) => {
            console.error('解析文件路径失败:', error);
        });
    } catch (error) {
        console.error('请求权限失败:', error);
    }
}

// 调用函数读取文件,例如读取/sdcard/test.txt
readFileContent('_doc/test.txt'); // 注意:这里的路径是示例,实际路径需要根据你的文件位置调整

注意:

  1. 在HBuilderX中,确保你的项目配置为5+App(即使用HTML5+扩展API)。
  2. 示例中的路径_doc/test.txt是应用私有目录下的文件路径,如果是访问公共存储(如sdcard),需要确保你的应用有相应的权限,并且路径正确。
  3. 在Android平台上,权限请求是异步的,因此需要使用Promise或async/await来处理。

通过上述代码,你应该能够解决html5+ plus.io不允许读取文件的问题。如果仍然有问题,请检查你的文件路径和权限配置是否正确。

回到顶部