HarmonyOS鸿蒙Next中photoViewPicker传入RecommendationType不生效

HarmonyOS鸿蒙Next中photoViewPicker传入RecommendationType不生效 按照官方API 说明,在使用 PhotoViewPicker时传入RecommendationType,如二维码类型,未在相册中对二维码图片进行筛选。

3 回复

试下这个emo,在浏览器下了两个二维码,直接拉起picker后,可以成功跳到了二维码分类的图库;

import { picker } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';

@Entry
@Component
struct ListExample {
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  /**
   * 选择图片/视频
   * @param maxSelectNumber 选择媒体文件的最大数目
   * @param MIMEType 可选择的媒体文件类型
   * @returns
   */
  public selectPhoto(maxSelectNumber?: number, MIMEType?: picker.PhotoViewMIMETypes): Promise<Array<string>>{
    return new Promise((resolve, reject) => {
      let recommendationOptions: photoAccessHelper.RecommendationOptions = {
        recommendationType: photoAccessHelper.RecommendationType.QR_CODE // 配置枚举类型,不同的枚举值,推荐不同种类的图片
      };
      let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions
      photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
      photoSelectOptions.maxSelectNumber = maxSelectNumber || 1;
      photoSelectOptions.recommendationOptions = recommendationOptions
      const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
      photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult: picker.PhotoSelectResult) => {
        const selectUris = photoSelectResult.photoUris;
        const base64List: Array<string> = [];
      }).catch((err: BusinessError) => {
        console.error(JSON.stringify(err))
        reject(err)
      })
    })
  }
  build() {
    Column() {
      Button("选择").onClick(() => {
        this.selectPhoto()
      })
    }
    .width('100%')
    .height('100%')
    .backgroundColor(0xDCDCDC)
    .padding({ top: 5 })
  }
}

更多关于HarmonyOS鸿蒙Next中photoViewPicker传入RecommendationType不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,photoViewPicker组件的RecommendationType参数用于指定照片选择的推荐类型。如果传入的RecommendationType不生效,可能是以下原因之一:

  1. API版本不匹配:RecommendationType可能仅在特定API版本中生效,检查设备或模拟器运行的HarmonyOS版本是否支持该参数。

  2. 参数值错误:确保传入的RecommendationType值在枚举范围内,且拼写正确。例如,RecommendationType.RECOMMENDATION_TYPE_A应正确指定。

  3. 权限不足:某些推荐类型可能需要特定权限,确认已正确申请并授予相关权限。

  4. 组件初始化问题:photoViewPicker组件可能未正确初始化,或在初始化过程中RecommendationType参数未生效。

  5. 系统限制:某些设备或系统版本可能对RecommendationType的支持有限制,导致参数不生效。

  6. 代码逻辑错误:检查代码中是否有其他逻辑覆盖或修改了RecommendationType的值。

  7. SDK版本问题:使用的SDK版本可能不支持RecommendationType参数,或存在已知问题,建议确认SDK版本是否最新。

  8. 系统缓存或延迟:系统可能因缓存或延迟未立即应用RecommendationType参数,尝试重启设备或清除应用缓存。

如果以上原因均排除,建议参考官方文档或更新日志,确认RecommendationType参数的使用条件和限制。

在HarmonyOS鸿蒙Next中,photoViewPickerRecommendationType参数可能未生效的原因包括:参数值设置错误、API版本不兼容、或系统权限未正确配置。建议检查以下步骤:

  1. 确保RecommendationType值符合API文档要求。
  2. 确认使用的API版本支持该参数。
  3. 检查应用权限,确保已获取必要的访问权限。
  4. 查看官方文档或社区论坛,确认是否存在已知问题或更新。如果问题依旧,建议提交问题报告给华为开发者支持团队。
回到顶部