gpt4 book ai didi

javascript - 如何在 Android 10 上使用 Cordova 创建文件夹?

转载 作者:行者123 更新时间:2023-12-04 03:56:31 24 4
gpt4 key购买 nike

我的 Cordova 应用程序 (Android) 在“图片”目录中创建一个文件夹(cordova-plugin-file),并将图像存储到其中。这在 Android 8 上运行良好,但我在 Android 10 上收到文件错误 12 (“具有相同路径的文件或目录已存在。” https://developer.mozilla.org/en-US/docs/Web/API/FileError )

// Get "/storage/emulated/0/" Folder
window.resolveLocalFileSystemURL(window.cordova.file.externalRootDirectory, dir => {
console.log(dir) // This gets executed

// Get / Create "Pictures" Folder
dir.getDirectory("Pictures", { create: true, exclusive: false }, dir => {
console.log(dir) // This also gets executed

// Get / Create "Test" Folder
dir.getDirectory("Test", { create: true, exclusive: false }, dir => {
console.log(dir) // This doesn't

// Create image
dir.getFile(filename, { create: true }, file => {
console.log(file)

file.createWriter(fileWriter => {
fileWriter.write(blob)
resolve()
}, console.error)
}, console.error)
}, console.error) // => FileError: 12
}, console.error)
}, console.error)

当我将行 dir.getDirectory("Test", { create: true, exclusive: false } ... 更改为 dir.getDirectory("Test", { create: false } ...,我收到 FileError 1 (“在处理操作时找不到所需的文件或目录。例如,文件不存在但正在打开。 ")。所以我尝试手动创建文件夹,这一行没有错误了,但是由于 FileError 9 ("The modification requested is not allowed. For例如,应用程序可能会尝试将目录移动到它自己的子目录或将文件移动到其父目录而不更改其名称。”)我的 AndroidManifest.xml 包含行

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

所以权限应该也不是问题。请记住,这些错误只发生在我的 Android 10 设备上,而不是 Android 8 设备上。

有人知道这里发生了什么吗?

最佳答案

将此代码添加到您的 config.xml 文件中:

<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
<application android:requestLegacyExternalStorage="true" />
</edit-config>

关于javascript - 如何在 Android 10 上使用 Cordova 创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63796861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com