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}) } }

5 回复

你好。

使用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】

https://blog.csdn.net/u010949451/article/details/143227934?sharetype=blogdetail&shareId=143227934&sharerefer=APP&sharesource=u0109451&sharefrom=link

在HarmonyOS鸿蒙Next中,photoPicker.select(photoSelectOptions)用于从图库中选择照片。根据描述,第一次调用时UI正常展示,但第二次调用时UI内图片被清除,且未拉起系统图库选择。这可能是由于以下原因:

  1. 状态管理问题:UI组件可能未正确维护或更新状态,导致第二次调用时无法正确显示图片。
  2. 生命周期管理:组件的生命周期可能未正确处理,导致第二次调用时资源被释放或重置。
  3. 回调函数问题:photoPicker.select的回调函数可能未正确处理第二次调用的结果,导致UI未更新。
  4. 权限问题:第二次调用时,可能由于权限问题未能成功拉起系统图库。

检查代码中是否正确处理了photoPicker.select的回调函数,确保UI组件在每次调用后都能正确更新。同时,确认权限设置是否允许多次调用图库选择功能。

在HarmonyOS鸿蒙Next中,photoPicker.select(photoSelectOptions)用于调用系统图库选择图片。如果第二次调用时UI内图片被清除,可能是因为photoSelectOptions中的缓存或状态未正确重置。建议检查以下两点:

  1. 缓存清理:确保在每次调用select方法前,清理或重置photoSelectOptions中的缓存,避免残留数据影响。
  2. 状态重置:检查UI组件的状态管理,确保在重新调用时正确初始化,避免旧数据干扰。

如果问题依旧,建议查阅官方文档或社区,确认是否存在已知问题或更新修复。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!