鸿蒙开发:17-使用PhotoViewPicker.select()拉起相册及已选择图片再次进入未默认选中的问题

62 阅读1分钟

使用PhotoViewPicker.select()拉起相册及已选择图片再次进入未默认选中的问题

@ohos.file.photoAccessHelper (相册管理模块)-ArkTS API-Media Library Kit(媒体文件管理服务)-媒体 - 华为HarmonyOS开发者

如何解决PhotoViewPicker已选择图片再次进入未默认选中的问题-媒体-开发-常见问题手册 - 华为HarmonyOS开发者

如何解决PhotoViewPicker已选择图片再次进入未默认选中的问题 #鸿蒙场景化案例#-华为开发者问答 | 华为开发者联盟

使用photoAccessHelper.PhotoViewPickerselect方法拉起相册

select方法的参数中传入preselectedUrisuri数组,代表已选中文件的uri

export function selectPhoto(maxSelectNumber?: number,
  preselectedUris?: string[]): Promise<photoAccessHelper.PhotoSelectResult> {
  const photoSelectOptions = new photoAccessHelper.PhotoSelectOptions()
  photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE
  photoSelectOptions.maxSelectNumber = maxSelectNumber ?? 1; // 选择媒体文件的最大数目
  if (preselectedUris) {
    photoSelectOptions.preselectedUris = preselectedUris
  }
  const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
  return photoViewPicker.select(photoSelectOptions)
}
// 选择图片
async selectImages() {
  try {
    let preselectedUris: string[] = this.imageSelectedList.map(item => item.src) ?? []
    const photoSelectResult: photoAccessHelper.PhotoSelectResult =
      await selectPhoto(PHOTO_SELECT_MAX_NUMBER, preselectedUris)
    if (photoSelectResult) {
      this.imageSelectedList = photoSelectResult.photoUris?.map(uri => new ImageItem(uri)) ?? []
    }
  } catch (error) {
    logger.error(`选择图片失败, error:${JSON.stringify(error)}`)
  }
}