前端html input =“file“ ios/安卓解决无法选择图库/拍照问题

简介: 前端html input =“file“ ios/安卓解决无法选择图库/拍照问题

背景

在使用input上传图片的时候,有时候会出现安卓能拍照和选择图库,而ios只能拍照的情况,主要原因是由input的multiple和capture两个属性的不同设置所造成的

解决办法

1、multiple="multiple"capture="camera"安卓:可拍照可图库iOS只可拍照
2、multiple="multiple"无capture安卓:只可拍照ios:可拍照可图库
3、无multiplecapture="camera"安卓:只可图库ios:只可拍照
4、无multiple无capture安卓ios都可拍照可图库

延申

HTML5官方文档解释:capture属性用于调用设备的摄像头或麦克风。


当accept=”audio/或video/”时capture只有两种值,一种是user,用于调用面向人脸的摄像头(例如手机前置摄像头),一种是environment,用于调用环境摄像头(例如手机后置摄像头)。


当accept=”audio”时,只要有capture就调用设备麦克风,忽略user和environment值。


至于网上提到的camera和filesystem,官方没提。

官方文档:www.w3.org/TR/2018/REC-html-media-capture-20180201/


iOS最遵守遵守HTML5规范,其次是X5内核,安卓的webview基本忽略了capture。

理想情况下应该按照如下开发webview:


当accept=”image/*”时,capture=”user”调用前置照相机,capture=”其他值”,调用后置照相机

当accept=”video/*”时,capture=”user”调用前置录像机,capture=”其他值”,调用后置录像机

当accept=”image/,video/”,capture=”user”调用前置摄像头,capture=”其他值”,调用后置摄像头,默认照相,可切换录像

当accept=”audio/*”时,capture=”放空或者任意值”,调用录音机

当input没有capture时,根据accppt类型给出文件夹选项以及摄像头或者录音机选项

input含有multiple时访问文件夹可勾选多文件,调用系统摄像头或者录音机都只是单文件

无multiple时都只能单文件

安卓上:

<inputtype="file"accept="image/*"capture="camera">//只调用相机<inputtype="file"accept="video/*"capture="camcorder">//只调用摄像机<inputtype="file"accept="audio/*"capture="microphone">//只调用录音设备

input:file标签还支持一个multiple属性,表示可以支持多选,如:

<inputtype="file"accept="image/*"multiple>

加上这个multiple后,capture就没啥用了,因为multiple是专门用来支持多选的。

苹果上:

全部都是直接调用相机,就是安卓才会有这些花里胡哨的东西

目录
相关文章
|
24天前
|
搜索推荐 Android开发 iOS开发
安卓与iOS系统的用户界面设计对比分析
本文通过对安卓和iOS两大操作系统的用户界面设计进行对比分析,探讨它们在设计理念、交互方式、视觉风格等方面的差异及各自特点,旨在帮助读者更好地理解和评估不同系统的用户体验。
18 1
|
1月前
|
开发框架 前端开发 JavaScript
前端框架演进史:从HTML到现代化开发
前端框架演进史:从HTML到现代化开发
33 0
|
1月前
|
前端开发
前端通过input标签封装Upload组件实现文件上传
前端通过input标签封装Upload组件实现文件上传
51 0
|
1月前
|
前端开发
前端input上传文件获取视频或音频的时长
前端input上传文件获取视频或音频的时长
90 0
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
13 1
|
16天前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性
|
22天前
|
搜索推荐 Android开发 iOS开发
安卓与iOS操作系统的发展与比较
在移动互联网时代,安卓和iOS两大操作系统在智能手机市场竞争激烈。本文将从技术架构、生态系统、用户体验等方面对安卓和iOS进行比较分析,探讨它们各自的特点和发展趋势。
|
27天前
|
移动开发 前端开发 HTML5
Web前端全栈HTML5通向大神之路
本套课程共三大阶段,六大部分,是WEB前端、混合开发与全栈开发必须要掌握的技能,从基础到实践,是从编程小白成长为全栈大神的最佳教程!
35 3
Web前端全栈HTML5通向大神之路
|
1月前
|
前端开发 JavaScript 开发者
前端的HTML使用
前端的HTML使用
16 3