在我的手机web应用(不是原生应用)中,我想拍一张照片并上传,但我不想使用Adobe Flash。有什么办法可以做到吗?
当前回答
iOS 6+和Android 2.2+上的Safari和Chrome支持HTML Media Capture,允许您使用设备的相机或选择现有的相机拍照:
<输入类型=“文件” 接受=“图像/*”>
以下是它在iOS 10上的工作原理:
Android 3.0+和iOS10.3+上的Safari也支持capture属性,用于直接跳转到相机。
<输入类型=“文件” 接受=“图像/*” 捕获>
capture="camera" (String)和accept="image/*;capture=camera" (Parameter)是旧规范的一部分,并被capture (Boolean)所取代。
支持文档:这本2013年O'Reilly的书和我的测试
其他回答
应该注意的是,已经实现了安全特性,这些特性要求应用程序在localhost下本地运行,或者通过SSL让GetUserMedia()工作。
我在尝试几个可用的演示时发现了这一点,当它们不起作用时感到失望!参见:新的安全限制
在iPhone iOS6和Android ICS之后,HTML5有以下标签,允许你从你的设备上拍照:
<input type="file" accept="image/*" capture="camera">
Capture可以取相机、摄像机和音频等值。
我觉得这个标签在iOS5里肯定不行,我不确定。
AppMobi HTML5 SDK曾经承诺通过基于HTML5的应用程序访问本机设备功能(包括摄像头),但现在不再属于谷歌所有。相反,试试这篇文章中基于html5的答案。
您需要使用getUserMedia来访问摄像机。
本教程概述了从浏览器访问设备摄像机的基础知识:https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
注意:此功能适用于大多数Android设备,仅适用于iOS Safari。
更新一下,现在的标准是:
<input type="file" name="image" accept="image/*" capture="environment">
访问面向环境(后置)的摄像头,和
<input type="file" name="image" accept="image/*" capture="user">
面向用户(前置)摄像头。要访问视频,在名称上将“视频”替换为“图像”。
在iPhone 5c上测试,运行iOS 10.3.3,固件760,工作正常。
https://www.w3.org/TR/html-media-capture/
推荐文章
- 使伸缩项目正确浮动
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 如何删除和清除所有的本地存储数据
- 强制打开“另存为…”弹出打开文本链接点击PDF在HTML
- 如何修改标签文本?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?
- 输入触发器按钮单击