Html 如何访问手机';从web应用程序中删除摄像头?

Html 如何访问手机';从web应用程序中删除摄像头?,html,mobile,camera,Html,Mobile,Camera,在我的手机网络应用程序(不是本机应用程序)中,我想拍照并上传,但我不想使用Adobe Flash。有什么方法可以做到这一点吗?我不知道有什么方法可以在没有其他机制的情况下从web浏览器访问手机摄像头(例如,Flash或允许访问硬件API的某种类型的容器) 对于后者,请查看PhoneGap: 有了这个功能,你至少可以在iOS和Android设备上访问摄像头。我不认为你可以-有一种方法可以获取音频或视频,但在任何主要的移动操作系统上都还没有实现 其次,唯一的选择是按照丹尼斯的建议使用PhoneGap

在我的手机网络应用程序(不是本机应用程序)中,我想拍照并上传,但我不想使用Adobe Flash。有什么方法可以做到这一点吗?

我不知道有什么方法可以在没有其他机制的情况下从web浏览器访问手机摄像头(例如,Flash或允许访问硬件API的某种类型的容器)

对于后者,请查看PhoneGap:


有了这个功能,你至少可以在iOS和Android设备上访问摄像头。

我不认为你可以-有一种方法可以获取音频或视频,但在任何主要的移动操作系统上都还没有实现


其次,唯一的选择是按照丹尼斯的建议使用PhoneGap。这意味着您需要创建一个本机应用程序,并将其添加到移动应用程序商店/市场。

AppMobi HTML5 SDK曾承诺从基于HTML5的应用程序访问本机设备功能(包括摄像头),但现在不再是谷歌所有。取而代之的是,在iPhone iOS6和Android ICS中尝试使用。

,HTML5具有以下标签,允许您从设备上拍照:

 <input type="file" accept="image/*" capture="camera">

Capture
可以获取摄像头、摄像机和音频等值


我认为这个标签在iOS5中肯定不起作用,对此我也不确定。

好吧,HTML5有一个新的特性可以访问本机设备摄像头-“getUserMedia API”


注意:HTML5可以在安卓设备上处理网页上的照片捕获(至少在最新版本上,由蜂巢操作系统运行;但在iPhone上,除了iOS 6,它无法处理照片捕获)。

如今,至少在安卓设备上,它相对容易。只需使用普通文件输入标签,当用户点击它时,手机会询问用户是否想使用摄像头(或文件管理器等)上传文件。只要用相机拍一张照片,它就会自动添加并上传

对iphone一无所知。也许有人能对此有所启发。 编辑:Iphone的工作原理与此类似

输入标记的示例:

<input type="file" accept="image/*" capture="camera">

您可以使用WEBRTC,但不幸的是,并非所有web浏览器都支持它。下面是显示哪些浏览器支持它的链接

这个链接让您了解如何访问它(示例代码)。

iOS 6+和Android 2.2+上的Safari&Chrome支持HTML媒体捕获,允许您使用设备的摄像头拍照或选择现有摄像头:

以下是它在iOS 10上的工作原理:

iOS10.3+上的Android 3.0+和Safari也支持
capture
属性,该属性用于直接跳转到相机

capture=“camera”
(字符串)和
accept=“image/*;capture=camera”
(参数)是旧规范的一部分,被W3C候选推荐的
capture
(布尔值)所取代


支持文档:此和

为了更新此文档,现在的标准是:

<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,运行良好


应该注意的是,已经实现了安全功能,要求应用程序在本地主机下本地运行,或者通过SSL让GetUserMedia()工作

我在尝试一些可用的演示时发现了这一点,当它们不起作用时,我感到失望!请参阅:

您将要使用以访问相机

本教程概述了从浏览器访问设备摄像头的基本知识:



注意:这适用于大多数Android设备,并且仅适用于Safari中的iOS

“网页”的意思是,它应该能够轻松地从任何类型的客户端/设备访问。那么,我应该设置限制吗?我想,你想访问硬件摄像头,对吗?嗯。。移动智能手机的“摄像头”等。。这是我目前正在为自己的项目学习的一门课程。PWA允许您在现代浏览器中使用本机设备功能:这仍然要求在移动设备上安装应用程序,这是我认为OP想要避免的。@MichaelPetrotta你知道更好的方法吗?我不相信OP要求的是可能的。@MichaelPetrotta我也这么认为。我能想到的最好的方法是PhoneGap,因为它可以在iOS上运行(Flash没有)。尽管如此,它仍然是本地的,但至少允许从网页上跨平台访问摄像头。很抱歉重新发布-我想看看你是否在android上绕过了jersey客户端的NPE例外。卡住:(我不相信谷歌对AppMobi或他们的产品有任何所有权。啊-我的错误,因为它在Chrome网上商店上-谷歌参考已删除。以下是真正的合作伙伴:哦,对不起,是调用setUserMedia API这里有一个很棒的教程:这里不需要GetUserMedia。我得到了一个“GetUserMedia(),此设备不支持”-但我在safari上,有ios7-为什么?-Dan刚才编辑我认为代码应该是
。在2012年,
capture=“camera”
(字符串)和旧的
accept=“image/*;capture=camera”
都被
capture=“capture”
(布尔值)取代。该属性用于强制捕获,而不是从库中选择。请参阅,您可以对多个文件执行此操作,如:multiple=“multiple”示例:
multiple
在安卓和iOS上都能工作,请看其他苹果设备的不确定,至少这个解决方案现在也能在iPad上工作。WebRTC和
getUserMedia
太过分了,
会起作用。安卓上的我只会直接选择照片,但即使我设置了capt,也不会给我相机选项ure=“摄像头”…完全正确stuck@Benyaman尝试使用
capture
而不是
capture=“camera”
。好奇什么设备和安卓版本。我是在安卓5.0手机上做的