博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5页面如何在手机端浏览器调用相机、相册功能
阅读量:6068 次
发布时间:2019-06-20

本文共 1257 字,大约阅读时间需要 4 分钟。

     最近在做一个公司的保险信息处理系统项目,开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file"/>标签,iOS直接就支持吊起相机拍照或是相册选择,但android中不支持吊起相机拍照,只能吊起相册选择,网上的帖子说是因为android屏蔽了文件上传功能还是怎么的,没看明白。此篇博文记录如何解决这一问题,使得android也可以直接吊起相机拍照。

        在查资料的之后,总结了一下用input调用相机和相册功能的方法,之前没有深入了解过,现在整理一下:

        不需要特殊环境,使用input标签 type值为file,可以调用系统默认的照相机、相册、摄像机、录音功能。先上代码:

 

[html] 
 
 
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>HTML5页面如何在手机端浏览器调用相机、相册功能</title>  
  6. </head>  
  7. <body>  
  8.   
  9. <div>  
  10.     <input type="file" accept="image/*" capture="camera">  
  11.     <input type="file" accept="video/*" capture="camcorder">  
  12.     <input type="file" accept="audio/*" capture="microphone">  
  13. </div>  
  14.   
  15. </body>  
  16. </html>  

 

accept表示打开的系统文件目录;

capture表示的是系统所捕获的默认设备,camera:照相机;camcorder:摄像机;microphone:录音。

        如果不加上capture,则只会显示相应的,例如上述三种依次是:拍照或图库,录像或图库,录像或拍照或图库,加上capture之后不会调用图库。

        其中还有一个属性multiple,支持多选,当支持多选时,multiple优先级高于capture,所以只用写成:<input type="file" accept="image/*" multiple>就可以,可以在手机上测试一下。

 

判断ios,如果是ios就去掉capture属性.

var file = document.querySelector('input');        if (getIos()) {            file.removeAttribute("capture");        }        function getIos() { var ua=navigator.userAgent.toLowerCase(); if (ua.match(/iPhone\sOS/i) == "iphone os") { return true; } else { return false; } }

转载于:https://www.cnblogs.com/Tohold/p/8510579.html

你可能感兴趣的文章
七周五次课(1月26日)
查看>>
Linux系统一些系统查看指令
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>
数组扩展方法之求和
查看>>
astah-professional-7_2_0安装
查看>>
函数是对象-有属性有方法
查看>>
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>
c# 连等算式都在做什么
查看>>
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
根据调试工具看Vue源码之组件通信(一)
查看>>
Thrift RPC 系列教程(5)—— 接口设计篇:struct & enum设计
查看>>
斯坦福-随机图模型-week1.5
查看>>
灵活的运用Model类
查看>>
页面和应用之间的交互
查看>>
hadoop 之分布式安装
查看>>
使用ansible工具部署ceph
查看>>