使用HTML5+调用手机摄像头和相册
来源:互联网 发布:软件代理赚钱吗 编辑:程序博客网 时间:2024/04/30 17:29
前言:
前端时间使用HTML5做了一个WEB端APP,其中用到了H5页面调用手机摄像头的功能,当时也是花了不少时间去研究。最终是采用了HTML5plus(HTML5+)的方式完成了该功能,现将具体方法简单介绍下,并讲解下使用的注意事项。
实例:
具体流程:点击触发选择拍照或相册-->拍照或相册选择照片-->拿到图片路径进行压缩-->读取文件并显示在页面上
- 首先是html代码,很简单,就是给一个添加按钮,点击触发事件,这里我就不把css文件放出来,大家知道是一个添加按钮就行。
- 后面我们来看下具体的js代码,按照上面我们说的方法共分为5个方法,具体如下:
- 有几点进行说明下:(1):压缩图片方法,这里我采用的是重新写一个新文件 (2):图片显示方法,该方法很重要。因为我这边坐的是WEB端APP,页面都由服务器返回,我们可以拿到的是手机本地的图片,网上很多说法是直接拿文件路径就显示了,但是我却怎么都没显示出来。所以才用了FileReader将本地文件读取过来,e.target.result.toString();这个方法返回的就是我们的图片的base64编码,所以你看到下面我是动态拼HTML页面,直接将该内容赋值给img标签的src就可以直接显示图片。【这里曾经纠结很久】有了这个base64编码的url,我们就可以直接上传到后台。
使用注意:
这里主要讲打包工具不同需要做的工作也不太一样。我这边是用的Hbuilder在线打包,当然外壳也可以是Android环境打包,下面具体讲下要注意的地方。
- Hbuilder:这个是一个很方便的web开发工具,可以在线打包APP。【由于网络问题,我上传不了图片,尽量文字描述】我们需要在Hbuilder里面建一个APP项目,点开manifest.json文件,这个文件就是我们APP的配置信息,下面导航栏分别为:应用信息、图标配置、启动Flash配置、SDK配置、权限模块配置等。一般我们需要配下应用信息(APP的名字、入口),图标,启动flash(可以选择启动图片),SDK配置一般是一些地图、支付、推送等。重点来了,我们如果使用HTML5+,需要在模块权限配置里面,选择我们用到的功能,比如我们用到了plus.nativeUI.*,就需要选择NativeUI(原生UI)模块,也就是说,我们用了plus.xx.*,就需要勾选相应的模块。【这个manifest.json是可视化界面,大家下载安装就能明白】
- Android环境:相对Hbuilder,Android环境稍微复杂一点,由于我没有在Android环境里搞过这个,这里只是介绍下Hbuilder官网的一些使用说明。
举例说明:例如我们需要使用Camera对象,需要做如下配置:
2.1:添加camera.jar。
2.2:AndroidManifest.xml permission节点中添加:
<uses-permission Android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>2.3:properties.xml features节点中添加:
<featurename="Camera" value="io.dcloud.js.camera.CameraFeatureImpl"/>
这个配置方式在Hbuilder的官网上可以下载,里面包含所有的jar包和不同的权限所需的配置。
阅读全文
0 1
- 使用HTML5+调用手机摄像头和相册
- html5怎样调用手机摄像头或者相册
- html5 调用手机相机、文件和相册
- html手机端调用手机相册和摄像头
- html手机端调用手机相册和摄像头
- HTML5调用手机摄像头
- html5调用手机摄像头
- HTML5 调用手机摄像头
- 调用摄像头和相册
- 调用摄像头和相册
- Android调用手机摄像头和相册获取图片
- HMTL5调用手机摄像头拍照和获取相册
- HTML5 调用手机摄像头 Demo
- html5 调用手机摄像头详解
- HTML5调用手机摄像头拍照
- HTML5调用手机摄像头拍照
- HTML5调用手机摄像头拍照
- 纯html5调用手机摄像头
- Linux SSL
- 哈夫曼树及哈夫曼编码
- vim 跳到指定行
- web前端学习--用js实现计算器、迷宫、打地鼠
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 使用HTML5+调用手机摄像头和相册
- 类装载器
- VM VirtualBox配置linux桥接网络,让虚拟机能够上网
- csu1115(字典树)最短的名字
- ajaxd的js和jquery实现
- SpringDemo ----- 扫描注入
- 多线程编程之一:关键段的使用
- bzoj1300: [LLH邀请赛]大数计算器
- 关于垂直居中