在 H5 页面中打开手机摄像头、显示摄像头画面并实现拍照功能,同时兼容苹果手机(iOS Safari),需要注意以下几点:
-
iOS 的兼容性问题:
-
iOS Safari 对
getUserMedia
的支持有一些限制,例如必须在用户交互(如点击按钮)后调用。 -
iOS Safari 不支持
autoplay
属性,必须显式调用video.play()
。
-
-
HTTPS 环境:
-
iOS Safari 要求页面必须通过 HTTPS 访问(本地开发时
localhost
除外)。
-
-
摄像头权限:
-
iOS Safari 会弹出摄像头权限请求,用户必须明确授权
-
以下是兼容苹果手机的完整代码示例:
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>H5 摄像头拍照</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 0;
padding: 0;
}
#video {
max-width: 100%;
height: auto;
border: 1px solid #ccc;
margin: 10px 0;
}
button {
padding: 10px 20px;
font-size: 16px;
margin: 10px;
}
#output img {
max-width: 100%;
height: auto;
border: 1px solid #ccc;
margi