HarmonyOS 鸿蒙Next 文件选择器(FilePicker)第一遍无法获取uri

HarmonyOS 鸿蒙Next 文件选择器(FilePicker)第一遍无法获取uri 需要运行两遍才能获取到uri,代码如图:

当打开app以及选择第一次视频后,结果如图:

当第二次点击选择并选中视频后,结果如图:

请问大佬们这是什么原因?另外我还想知道,获取到uri后该怎么获取url?


更多关于HarmonyOS 鸿蒙Next 文件选择器(FilePicker)第一遍无法获取uri的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复
export async function openGallery(): Promise<Array<string>> {
  const photoSelectOptions = new picker.PhotoSelectOptions();
  photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE
  photoSelectOptions.maxSelectNumber = 5; // 选择媒体文件的最大数目
  let uris = null;
  const photoViewPicker = new picker.PhotoViewPicker();
  let mediaUris: Array<string> = []
  mediaUris = await new Promise((resolve) => {
    photoViewPicker.select(photoSelectOptions).then((photoSelectResult) => {
      uris = photoSelectResult.photoUris;
      console.info('photoViewPicker.select to file succeed and uris are:' + uris);
      resolve(uris);
    }).catch((err) => {
      console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
    })
  })
  return mediaUris;
}

openGallery().then((uris) => {
  if (uris.length == 0) {
    return
  }
  this.mediaUris = uris
})

可以这么写

更多关于HarmonyOS 鸿蒙Next 文件选择器(FilePicker)第一遍无法获取uri的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


大佬!

HarmonyOS的流畅动画和过渡效果让操作更加顺畅,体验极佳。

我之前也是这样,不知道是什么情况

后来呢,解决了吗?

因为这个是异步问题呀,uri是在then回调函数赋值的,第一遍因为异步回调还没完成就打印了uri了,所以要改成同步的,就可以解决问题了

原来如此,谢谢,

在HarmonyOS鸿蒙Next中,文件选择器(FilePicker)在第一遍无法获取URI的原因可能是由于权限配置问题或文件选择器的初始化问题。开发者需要确保在manifest.json中正确配置了权限,并且在代码中正确初始化FilePicker。此外,可能需要检查文件选择器的回调函数是否正确处理了返回的URI。确保这些步骤正确执行后,通常可以解决无法获取URI的问题。

回到顶部