gpt4 book ai didi

android-file - 如何使用 Android 在 Cordova 的共享空间中保存文件?

转载 作者:行者123 更新时间:2023-12-04 08:16:53 25 4
gpt4 key购买 nike

我正在将 Apache Cordova 与 cordova-plugin-file 一起使用开发一些android应用程序。从 Android API 29 (Android 10) 开始,apps no longer have access to shared空间直接由于隐私问题。
我在 file:///storage/emulated/0/Download/ 上存储了一些 pdf 文件然后用户可以从那里打开pdf文件。

window.resolveLocalFileSystemURL('file:///storage/emulated/0/Download/', function (dir) {
dir.getFile(filename, { create: true }, function (file) {
file.createWriter(function (fileWriter) {
console.log('Writing content to file')

fileWriter.onwriteend = function () {
console.log('Successful file write...')
}

fileWriter.onerror = onerror

fileWriter.write(DataBlob)
}, onerror)
}, onerror)
}, onerror)
但这在 Android 10 上停止了。
我现在如何存储可供用户访问的文件?

最佳答案

window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory + "/Download" used to work


  • 当定位 API 28(现在被 Google Play 禁止)时,这应该可以正常工作
  • 当使用插件的开发版本(具有 android:requestLegacyExternalStorage="true" )定位 API 29 时,这应该有效,或者您可以使用 edit-config添加此标志。
  • 这在面向 API 30 时不起作用,因为 API 30 忽略了 android:requestLegacyExternalStorage属性。

  • 阅读 Android Notes 很重要在您定位 API 30 之前。您可能需要将您的文件迁移到另一个文件夹,以在使用新 API 定位 API 30 时保持对它们的访问。 Source .
    适用于最高 Android 10 (API 29) 的解决方案
    使用插件的开发版本
    cordova plugin rm cordova-plugin-file
    cordova plugin add https://github.com/apache/cordova-plugin-file.git
    我测试了它,它允许我使用 cordova.file.externalRootDirectory + "/Download"在 Android 10 (API 29) 中
    到我撰写本文时,还没有针对 Android 11(API 级别 30)的解决方案

    关于android-file - 如何使用 Android 在 Cordova 的共享空间中保存文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668470/

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