然后,用户单击input type=file用户必须获得upload file + camera对话框。我正在使用此html属性accept和capture。但是在某些现代设备上,这不会发生。下面有代码示例和下表,说明其正常工作与否。代码示例在Mobile Safari和中进行了测试Chrome。
input type=file
upload file + camera
accept
capture
Mobile Safari
Chrome
TL; DR:
我只有5个代码示例input type file:
input type file
1.(jsfiddle)
jsfiddle
<input type="file" accept="image/*" capture>
2.(jsfiddle)
<input type="file" accept="image/*" capture="camera">
3.(jsfiddle)
<input type="file" capture="camera">
4.(jsfiddle)
<input type="file" capture>
5.(jsfiddle)
<input type="file" accept="image/*">
测试设备:
结果表:
upload image dialog with camera
upload dialog(not image only) with camera
only camera
#
-------------------------------------------------------------------------------- |devices/example | Ch 1| Ch 2| Ch 3| Ch 4| Ch 5| MS 1| MS 2| MS 3| MS 4| MS 5| -------------------------------------------------------------------------------- |Samsung S3/4.1 | N | N | P | P | W | W | N | P | P | W | -------------------------------------------------------------------------------- |Samsung S3/4.3 | N | N | P | P | P | N | N | P | P | P | -------------------------------------------------------------------------------- |Samsung Galaxy Tab| N | N | P | P | W | W | N | P | P | W | -------------------------------------------------------------------------------- |Samsung Note | N | N | P | P | W | W | N | P | P | W | -------------------------------------------------------------------------------- |iPhone 5 | W | W | P | P | W | W | Y | P | P | W | -------------------------------------------------------------------------------- |Nexus 4 | N | N | P | P | W | - | - | - | - | - | --------------------------------------------------------------------------------
如您所见,我只能upload file + camera使用
<input type="file"accept="image/*">只要。但是capture在这种情况下没有属性,这让我感到担忧,并且Android 4.3出现了问题。
<input type="file"accept="image/*">
谢谢。
PS Question很特殊,但是在我的网站上,我必须为用户提供访问其图像和照相机的权限。另外,我认为我的桌子对任何人都可能有帮助,并且如果没有人回答,我也会寻找答案并将其张贴在这里。
这是实际答案。只需将其发布在这里供下一个用户使用:
实际上,当前的实现似乎根本不依赖于capture属性,而仅依赖于type和accept属性:浏览器显示一个对话框,用户可以在其中选择文件的获取位置,以及该capture属性不考虑在内。例如,iOSSafari依赖于图像和视频(非音频)的accept属性(非捕获)。即使您不使用该accept属性,浏览器也会让您在“拍摄照片或视频”和“选择现有”之间进行选择(感谢@firt指出这一点)。
编辑日期:2016年2月17日: 此行为在设备上仍然有效。