18910140161

使用“照片库”选项的HTML Fileinput在IOS-Stack溢出时无效

顺晟科技

2022-10-19 12:05:06

124

我有一个角PWA,它应该使用户可以上传一个图像到AWS S3桶。 它在Windows和Android的任何浏览器中都能工作,但在IOS上,在Firefox和Chrome以及Safari中,当使用“照片库”时,它都不能工作。

“拍摄照片或视频”选项实际上没有问题,但当使用“照片库”选项时,它让我选择一个图像,但选择后什么也没有发生。使用mobile Chrome控制台进行的调试表明,甚至没有调用processFile($event)函数,但我无法找出原因。

由于设计选择的原因,输入样式是“显示:无”,我使用另一个按钮来打开它,但由于打开它可以让我上传一张新照片,并让我实际选择图像,所以我认为这不是问题所在。

HTML:

  <input #imageInput type="file" accept="image/*, video/*" (change)="processFile($event)"/>
  <button (click)="imageInput.click()">

打字稿:

  <input #imageInput type="file" accept="image/*, video/*" (change)="processFile($event)"/>
  <button (click)="imageInput.click()">

编辑: 我刚刚发现它在macOS上的行为完全相同。


顺晟科技:

所以经过长时间的反复试验,我发现“原因”实际上是往上加了一层。出于设计原因,我在从父组件单击一个对象后调用上传。

在父组件中,文件输入所在的子组件被@viewchild引用。在父组件上的(click)之后,它从子组件调用了一个方法,这导致以编程方式单击文件输入。

出于某种原因,这导致在iOS和MacOS Safari上没有触发来自文件输入的所有事件。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航