Ionic 更新到API 33后Android上的存储权限问题

qco9c6ql  于 2023-09-28  发布在  Ionic
关注(0)|答案(1)|浏览(261)

我有一个离子,Angular ,和电容器的应用程序。我在应用程序中使用Cordova-diagnostic-plugin。我正在用它来下载手机上的图像。更新到Android API 33后,我遇到了一个问题

当前行为:

更新应用程序后,以目标Android API 33.当我尝试下载图像时,它会显示“存储请求”对话框,说明允许应用访问设备上的文件。
我尝试再次请求Android API 33的权限,正如你在文档中提到的那样,它没有打开任何权限对话框,并在日志中显示以下消息:

Requesting permission for android.permission.READ_EXTERNAL_STORAGE
 
Requesting permissions

Notifying listeners for event pause

No listeners found for event pause

App paused

Unable to find a Capacitor plugin to handle permission requestCode, trying Cordova plugins 0

预期行为:

点击下载按钮后,它应该下载并存储在手机上的图像。

截图

环境信息

  • Ionic CLI:7.1.1
  • 离子 backbone :@离子/Angular 7.2.0
  • @angular/cli:16.1.0
  • @ionic/angular-toolkit:9.0.0

电容器:

  • 电容器CLI:5.2.2
  • @capacitor/android:5.2.2
  • @capacitor/core:5.2.2
  • @capacitor/ios:5.2.2

系统名称:

  • NodeJS:v18.10.0
  • npm:8.19.2
  • 目标Android SDK版本
  • 33
  • 插件版本
  • "cordova.plugins.diagnostic": "^7.1.2"
    验证码:
const destinationUri = this.platform.is("android")
    ? "file:///storage/emulated/0/"
    : this.ionicFile.dataDirectory;

  
  const blob: Blob = res.data;

  if (this.platform.is("android")) {
    try {
      await this.ionicFile.checkDir(destinationUri, "dcim/WXS ONE");
    } catch {
      await this.ionicFile.createDir(destinationUri, "dcim/WXS ONE", false);
    }
}
lx0bsm1f

lx0bsm1f1#

我已经使用电容器文件系统存储在移动终端的图像

相关问题