#鸿蒙通关秘籍#如何使用HarmonyOS的startAbilityForResult接口拉起相机并获取返回的图片地址?

HarmonyOS
2024-12-03 11:17:21
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
LDAP风谷

在HarmonyOS中,可以通过startAbilityForResult接口拉起相机并获取图片地址。具体步骤如下:

  1. 使用cameraCapture函数来封装调用相机的逻辑。这个函数需要传入一个UIAbilityContext的上下文。
export async function cameraCapture(context: common.UIAbilityContext): Promise<string> {
  let result: common.AbilityResult = await context.startAbilityForResult({
    action: Constants.ACTION_PICKER_CAMERA,
    parameters: {
      'supportMultiMode': false,
      'callBundleName': context.abilityInfo.bundleName
    }
  });
  
  if (result.resultCode === 0) {
    let param: Record<string, Object> | undefined = result.want?.parameters;
    if (param !== undefined) {
      let resourceUri: string = param[Constants.KEY_RESULT_PICKER_CAMERA] as string;
      return resourceUri;
    }
  }
  return "";
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  1. 在输入弹窗的布局中添加一个相机图标,并设置点击事件。
Image($r('app.media.camera'))
  .onClick(async () => {
    let image: string = await cameraCapture(getContext(this) as common.UIAbilityContext);
    // 处理获取到的图片地址
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  1. 将获取到的图片地址存储或处理,用于后续的操作。
分享
微博
QQ
微信
回复
2024-12-03 13:36:20
相关问题
如何获取拍照后图片地址
2524浏览 • 1回复 待解决