HarmonyOS 调用相册函数时报错?

希望实现的是调用函数后,更新selectedUri的值,保存选择的照片后再跳转其他页面。

阅读 484
1 个回答

请参考:

import { picker } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Index{
  @State selectedUri: string = '';
  choosePhoto() {
    try {
      let photoSelectOptions: picker.PhotoSelectOptions = new picker.PhotoSelectOptions();
      // 过滤选择媒体文件类型为VIDEO
      photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      photoSelectOptions.maxSelectNumber = 1; // 选择媒体文件的最大数目
      // photoSelectOptions = true;
      // photoSelectOptions.isPhotoTakingSupported = true;
      let photoPicker = new picker.PhotoViewPicker()
      let uris: Array<string> = [];
      photoPicker.select(photoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => {
        console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' +
        JSON.stringify(PhotoSelectResult));
        uris = PhotoSelectResult.photoUris;
        this.selectedUri = uris[0];
      })
        //断点测试时发现在调用时,会到这里面报错
        .catch((err: BusinessError) => {
          console.error(`picker.select failed with err: ${err.code}, ${err.message}`);
        });
    } catch (error) {
      let err: BusinessError = error as BusinessError;
    }
  }

  build() {
    Column() {
      Image(this.selectedUri)
        .width('100%')
        .height(600)

      Button("选择图片").width(150).height(35).margin(8)
        .onClick(() => {
          this.choosePhoto()
        })
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进