Javascript (JS)For<;输入类型=";文件">;,确定设备是否提供从相机捕获照片的功能

Javascript (JS)For<;输入类型=";文件">;,确定设备是否提供从相机捕获照片的功能,javascript,input,mobile,camera,cross-browser,Javascript,Input,Mobile,Camera,Cross Browser,上传文件时,我需要让用户能够: 从文件系统上载文件 从照相机上拍摄一张照片 只需使用input type=“file”,大多数浏览器设备对即可实现该行为,但并非所有浏览器设备对都能实现该行为(有关详细信息,请参阅答案:)。那些没有实现照片捕获的配对可能只是关于计算机设备,但我不是100%确定(可能计算机设备上的一些浏览器实现了照片捕获,可能非计算机设备上的一些浏览器没有) 为了弥补这类设备的不足,我使用了一个库来: 一个input type=“file”用于从文件系统上载文件,+对于某

上传文件时,我需要让用户能够:

  • 从文件系统上载文件
  • 从照相机上拍摄一张照片

只需使用
input type=“file”
,大多数浏览器设备对即可实现该行为,但并非所有浏览器设备对都能实现该行为(有关详细信息,请参阅答案:)。那些没有实现照片捕获的配对可能只是关于计算机设备,但我不是100%确定(可能计算机设备上的一些浏览器实现了照片捕获,可能非计算机设备上的一些浏览器没有)


为了弥补这类设备的不足,我使用了一个库来:

  • 一个
    input type=“file”
    用于从文件系统上载文件,+对于某些设备:用于从摄像头捕获文件
  • 一个特殊的按钮调用库来捕获照片
该库可以完成其他任务,并很好地集成到我的上传系统中。而且,我现在使用它很长时间了,所以改变它可能会引入回归。最后,我宁愿保留它

另一方面,对于允许照片捕获的设备,该库的性能低于设备照片捕获。例如,它不提供在前后摄像头之间切换的可能性


这就是为什么要捕获照片,我只需要将该库用于未实现照片捕获的设备。

换句话说:我需要通过
input type=“file”


我找到了很多答案来确定浏览器是否是移动的,但没有人满意

最有趣的线程是:

不幸的是,这种解决方案并不完美:并不是因为“捕获”属性不适用于输入元素,浏览器和设备不提供通过输入元素捕获照片的可能性

这只意味着不可能强制从相机捕获照片,而不是从文件系统上载文件。但这并不意味着不可能从相机上拍摄。 然而,在阅读了文献之后,我发现它与

…但经过一些测试,我发现了一个反例:在三星平板电脑上,Firefox告诉我“捕获”属性不可用于输入,但浏览器毕竟提供了通过输入元素捕获照片的功能


有什么帮助吗?:)

有趣的线程:有趣的线程: