Fork me on GitHub

李可

导航

统计

移动端调用摄像头(相机)相册

回到顶部

上传文件的时候,选择相机和相册兼容

相册和相机切换
:在新安卓和ios,去掉capture
:在老安卓,加上capture

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<meta name="viewport" content="width=device-width,user-scalable=no" />
	<style type="text/css">
		label {
			position: absolute;
			left: 50%;
			top: 50%;
			margin: -21px 0 0 -101px;
			width: 200px;
			height: 40px;
			border: 1px solid #000;
			text-align: center;
			font: 16px/40px "宋体";
		}

		input {
			display: none;
		}
	</style>
</head>

<body>
	<!--
	在各个机型都可以点击 file 调用相册 和 摄像头拍照
		1. 在老版本的安卓中,必须加上capture,否则只能调用相册
		2. 在新版本的部分安卓中 以及IOS中 加了capture,就只能调用摄像头不能调用相册

		解决办法:
			判断ios,如果是ios就去掉capture属性
	-->
	<label>上传图片
		<input type="file" id="file" accept="image/*" capture>
	</label>
	<script>
		var file = document.querySelector('#file');
		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;
			}
		}
	</script>
</body>

</html>

posted on   李可在江湖  阅读(2656)  评论(1编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示