HarmonyOS 想实现一个不需要宿主组件的自定义弹窗?

想实现一个不需要宿主组件的自定义弹窗。

1、CustomDialog实现,现阶段CustomDialog需要CustomDialogController,且CustomDialogController需要再@Component struct传递,每个使用的地方都得定义CustomDialogController。

2、通过子窗口实现,子窗口无法传递回调数据。

3、promptAction.openCustomDialog 需要在每一个使用的Component创建builder。想要的实现是类似PhotoViewPicker的使用不需要依赖宿主,如下:

//选择图片
selectPhoto() {
  const photoSelectOptions = new picker.PhotoSelectOptions();
  const photoViewPicker = new picker.PhotoViewPicker();
  photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE
  photoSelectOptions.maxSelectNumber = 1; // 选择媒体文件的最大数目
  photoViewPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
    this.fileUri = photoSelectResult.photoUris[0]
  }).catch((err: BusinessError) => {
    console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
  })
}

请问怎么实现?

阅读 546
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进