HarmonyOS鸿蒙Next中选择相册怎么等待返回啊
HarmonyOS鸿蒙Next中选择相册怎么等待返回啊
let photoUris: Array<string> = ['']
try {
let photoPick = new picker.PhotoViewPicker();
let pickOptions = new picker.PhotoSelectOptions();
pickOptions.maxSelectNumber = 1;
pickOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
photoPick.select(pickOptions)
.then((pickResult: picker.PhotoSelectResult) => {
photoUris = pickResult.photoUris
})
} catch (e) {
photoUris = ['']
console.error(e)
}
return photoUris
select还没有触发return就执行了,怎么等select返回后在执行return
更多关于HarmonyOS鸿蒙Next中选择相册怎么等待返回啊的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
你写错了 select
是异步操作,肯定不会阻塞 return
photoPick.select(pickOptions)
.then((pickResult: picker.PhotoSelectResult) => {
photoUris = pickResult.photoUris
})
改成下面
let pickResult: picker.PhotoSelectResult = await photoPick.select(pickOptions)
photoUris = pickResult.photoUris
你可以了解一下 js 中的 Promise 机制
更多关于HarmonyOS鸿蒙Next中选择相册怎么等待返回啊的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
好的,我去试试,JS确实不太了解😂,
在HarmonyOS鸿蒙Next中,选择相册并等待返回可以通过以下步骤实现:
-
调用系统相册:使用
Intent
启动系统相册应用,例如:Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);
-
处理返回结果:在
onActivityResult
方法中处理用户选择的图片:[@Override](/user/Override) protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_PICK_IMAGE && resultCode == RESULT_OK) { Uri selectedImageUri = data.getData(); // 处理选择的图片 } }
通过这种方式,应用可以等待用户从相册选择图片并返回结果。