HarmonyOS鸿蒙Next中photoPicker.select(photoSelectOptions)拉取图库选取相册,UI内正常展示,但第二次调用,UI内图片全部被清除,此次没有拉起系统图库选择
HarmonyOS鸿蒙Next中photoPicker.select(photoSelectOptions)拉取图库选取相册,UI内正常展示,但第二次调用,UI内图片全部被清除,此次没有拉起系统图库选择
@State imageUris: Array<string> = []
private photoViewPicker() {
try {
let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions() //创建图库选择器实例,
photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE
photoSelectOptions.maxSelectNumber = 3
// 将上次选择的图片设置为本次预选图片
photoSelectOptions.preselectedUris = this.imageUris
let photoPicker = new photoAccessHelper.PhotoViewPicker()
photoPicker.select(photoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
//select方法:在选择图片点击完成之后, PhotoSelectResult.photoUris 返回选中的uri,缓存到preSelected中
this.imageUris = PhotoSelectResult.photoUris
}).catch((err: BusinessError) => {
console.error(____PhotoViewPicker.select failed with err: ${err.code}, ${err.message}
)
});
} catch (error) {
console.error(____PhotoViewPicker failed with err: ${error.code}, ${error.message}
)
}
}
你好。
使用picker获取图片,系统会临时授权uri,如果你的应用退到后台或者超时,授权会失效。你需要将uri数据copy维护。
更多关于HarmonyOS鸿蒙Next中photoPicker.select(photoSelectOptions)拉取图库选取相册,UI内正常展示,但第二次调用,UI内图片全部被清除,此次没有拉起系统图库选择的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
老哥,有demo参考一下嘛,
基本信息
def hello_world():
print("Hello, world!")
【【HarmonyOS 】ArrayBuffer转Base64,Base64转ArrayBuffer,Uri转ArrayBuff,PixelMap转ArrayBuffer,图片Uri转为PixelMap - CSDN App】
在HarmonyOS鸿蒙Next中,photoPicker.select(photoSelectOptions)
用于从图库中选择照片。根据描述,第一次调用时UI正常展示,但第二次调用时UI内图片被清除,且未拉起系统图库选择。这可能是由于以下原因:
- 状态管理问题:UI组件可能未正确维护或更新状态,导致第二次调用时无法正确显示图片。
- 生命周期管理:组件的生命周期可能未正确处理,导致第二次调用时资源被释放或重置。
- 回调函数问题:
photoPicker.select
的回调函数可能未正确处理第二次调用的结果,导致UI未更新。 - 权限问题:第二次调用时,可能由于权限问题未能成功拉起系统图库。
检查代码中是否正确处理了photoPicker.select
的回调函数,确保UI组件在每次调用后都能正确更新。同时,确认权限设置是否允许多次调用图库选择功能。
在HarmonyOS鸿蒙Next中,photoPicker.select(photoSelectOptions)
用于调用系统图库选择图片。如果第二次调用时UI内图片被清除,可能是因为photoSelectOptions
中的缓存或状态未正确重置。建议检查以下两点:
- 缓存清理:确保在每次调用
select
方法前,清理或重置photoSelectOptions
中的缓存,避免残留数据影响。 - 状态重置:检查UI组件的状态管理,确保在重新调用时正确初始化,避免旧数据干扰。
如果问题依旧,建议查阅官方文档或社区,确认是否存在已知问题或更新修复。