博客 RSS 订阅

File 插件 8.0.0 发布!
作者:Bryan Ellis
2023年7月11日

我们很高兴地宣布,我们刚刚发布了 cordova-plugin-file 的更新!

要升级

cordova plugin remove cordova-plugin-file
cordova plugin add [email protected]

发布亮点

重大更改

  • 移除了 WRITE_EXTERNAL_STORAGE 权限

    根据 Android 11 中存储更新 的官方文档,WRITE_EXTERNAL_STORAGE 权限不再有效,并且不会授予写入外部存储的权限。

    如果此权限未被允许用于目标 API 级别低于 Build.VERSION_CODES.Q (SDK 29) 的应用,则此权限无法授予应用。

    尽管 Cordova 默认已从插件中删除此权限,但如果需要,您仍然可以使用项目 config.xml 文件中的 config-file 标签将其添加回来。

    示例

      <config-file target="AndroidManifest.xml" parent="/*" xmlns:android="http://schemas.android.com/apk/res/android">
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
      </config-file>
    

    请务必注意,您的 Cordova 项目中使用的其他插件可能仍包含 WRITE_EXTERNAL_STORAGE 权限。要验证是否其他插件添加了该权限,您可以检查合并后的 AndroidManifest.xml 文件。

    合并后的 AndroidManifest.xml 文件可以在以下位置找到

      platforms/android/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
    

    请记住,上面提供的示例文件路径特定于调试构建。对于发布构建或不同的构建变体,文件路径可能略有不同。

  • Android 13+ 支持

    从 Android 13 (SDK 33) 开始,READ_EXTERNAL_STORAGE 权限不再起任何作用。相反,此权限已被更细粒度的权限取代:READ_MEDIA_IMAGESREAD_MEDIA_VIDEOREAD_MEDIA_AUDIO

    为了适应这一变化,我们引入了这三个新的权限。这确保了与读取各种媒体文件相关的现有功能和行为在 Android 13 及更高版本中得到维护。

    此外,为了支持新的细粒度权限和 Android 13 (SDK 33),我们将 cordova-android 的最低要求提高到 12.0.0 版本。 此版本的 Cordova-Android 专门包含处理 Android 13 并使用新权限成功编译项目的必要更新。

请通过遵循 如何提交错误 指南来报告您发现的任何问题!

更新日志

  • GH-534 fix(android): 修复内容 resolveLocalFileSystemURL 上的 FileError
  • GH-566 feat(android): 为 Android 13+ 添加 READ_MEDIA_* 权限
  • GH-576 feat(android)!: 提升 cordova-android@12 要求
  • GH-575 ci: 将 github 工作流与 paramedic 基本配置同步
  • GH-574 chore: 使用修复更新 @cordova/[email protected]
  • GH-556 feat(android)!: 从 plugin.xml 中删除 WRITE_EXTERNAL_STORAGE 权限
  • GH-554 spec(android): 基于测试环境修复 spec
  • GH-547 fix(types): 将 FileWriter.write 标记为支持 ArrayBuffer 数据
  • GH-535 ci: 将工作流与 paramedic 同步
  • GH-531 dep(npm): 使用重建提升 package-lock v2
  • GH-529 ci(android): 更新 cordova-android@11 的 java 要求