在我的手机web应用(不是原生应用)中,我想拍一张照片并上传,但我不想使用Adobe Flash。有什么办法可以做到吗?


当前回答

我不认为你可以——有一个W3C API草案来获取音频或视频,但还没有在任何主要的移动操作系统上实现。

唯一的选择是按照丹尼斯的建议使用PhoneGap。这意味着你需要创造一款原生应用并将其添加到手机应用商店/市场中。

其他回答

如果没有一些额外的机制(如Flash或允许访问硬件API的某种类型的容器),我不知道有任何方法可以从web浏览器访问手机的摄像头。

后者可以查看PhoneGap: http://docs.phonegap.com/phonegap_camera_camera.md.html

这样你至少可以在基于iOS和android的设备上访问相机。

我不认为你可以——有一个W3C API草案来获取音频或视频,但还没有在任何主要的移动操作系统上实现。

唯一的选择是按照丹尼斯的建议使用PhoneGap。这意味着你需要创造一款原生应用并将其添加到手机应用商店/市场中。

你可以使用WEBRTC,但不幸的是并非所有的浏览器都支持它。下面是显示哪些浏览器支持它的链接 http://caniuse.com/stream

这个链接让您了解如何访问它(示例代码)。 http://www.html5rocks.com/en/tutorials/getusermedia/intro/

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的书和我的测试

AppMobi HTML5 SDK曾经承诺通过基于HTML5的应用程序访问本机设备功能(包括摄像头),但现在不再属于谷歌所有。相反,试试这篇文章中基于html5的答案。