前言:

前端时间使用HTML5作了一个WEB端APP,其中用到了H5页面调用手机摄像头的功能,当时也是花了很多时间去研究。最终是采用了HTML5plus(HTML5+)的方式完成了该功能,现将具体方法简单介绍下,并讲解下使用的注意事项。

实例:

具体流程:点击触发选择拍照或相册-->拍照或相册选择照片-->拿到图片路径进行压缩-->读取文件并显示在页面上

首先是html代码,很简单,就是给一个添加按钮,点击触发事件,这里我就不把css文件放出来,你们知道是一个添加按钮就行。

图片描述

后面咱们来看下具体的js代码,按照上面咱们说的方法共分为5个方法,具体以下:

//图片显示

function showPics(url,name){

//根据路径读取到文件

plus.io.resolveLocalFileSystemURL(url,function(entry){

entry.file( function(file){

var fileReader = new plus.io.FileReader();

fileReader.readAsDataURL(file);

fileReader.onloadend = function(e) {

var picUrl = e.target.result.toString();

var picIndex = $("#picIndex").val();

var nowIndex = parseInt(picIndex)+1;

$("#picIndex").val(nowIndex);

var html = '';

html += '

';

html += '

X

';

html += '

';

html += '

';

html += $("#image-list").html();

$("#image-list").html(html);

}

});

});

}

//压缩图片

function compressImage(url,filename){

var name="_doc/upload/"+filename;

plus.zip.compressImage({

src:url,//src: (String 类型 )压缩转换原始图片的路径

dst:name,//压缩转换目标图片的路径

quality:40,//quality: (Number 类型 )压缩图片的质量.取值范围为1-100

overwrite:true//overwrite: (Boolean 类型 )覆盖生成新文件

},

function(zip) {

//页面显示图片

showPics(zip.target,name);

},function(error) {

plus.nativeUI.toast("压缩图片失败,请稍候再试");

});

}

//调用手机摄像头并拍照

function getImage() {

var cmr = plus.camera.getCamera();

cmr.captureImage(function(p) {

plus.io.resolveLocalFileSystemURL(p, function(entry) {

compressImage(entry.toLocalURL(),entry.name);

}, function(e) {

plus.nativeUI.toast("读取拍照文件错误:" + e.message);

});

}, function(e) {

}, {

filter: 'image'

});

}

//从相册选择照片

function galleryImgs() {

plus.gallery.pick(function(e) {

var name = e.substr(e.lastIndexOf('/') + 1);

compressImage(e,name);

}, function(e) {

}, {

filter: "image"

});

}

//点击事件,弹出选择摄像头和相册的选项

function showActionSheet() {

var bts = [{

title: "拍照"

}, {

title: "从相册选择"

}];

plus.nativeUI.actionSheet({

cancel: "取消",

buttons: bts

},

function(e) {

if (e.index == 1) {

getImage();

} else if (e.index == 2) {

galleryImgs();

}

}

);

}html

有几点进行说明下:(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。android

2.2:AndroidManifest.xml permission节点中添加:web

json

2.3:properties.xml features节点中添加:服务器

网络

这个配置方式在Hbuilder的官网上能够下载,里面包含全部的jar包和不一样的权限所需的配置。

工具

html调起苹果手机摄像头_使用HTML5+调用手机摄像头和相册相关推荐

  1. php h5 调用摄像头_利用html5调用本地摄像头拍照上传图片

    [php]代码库html5概念啥的就不废话了,不知道的 百度, 谷歌一堆..今天学了学html5中的Canvas结合新增的标签来获取本地摄像头,在html5之前,要在浏览器获取本地摄像头只有通过插件( ...

  2. 原生html调手机拍照,如何让HTML5调用手机摄像头拍照——实践就是一切

    原文:如何让HTML5调用手机摄像头拍照--实践就是一切 NanShan 小编将思路提供给了大家,学编程最重要的是实践,我这虽然有完善的代码,但是希望大家都可以自己写出属于自己的代码 HTML5 Th ...

  3. html5 调用手机摄像头详解

    html5 调用手机摄像头详解   首先,我们看看HTML代码结构,当然,这部分的DOM内容应该是在用户允许使用其摄像头事件出发后,动态加载生成的.  注意: 我们采用的是 640X480的分辨率,如 ...

  4. html5调用手机摄像头

    在一个响应式网站项目中需要用到 html5调用手机摄像头,找了很多资料,大都是 js调用api  然后怎样怎样,做了几个demo测试发现根本不行, 后来恍然大悟,用html5自带的 input fil ...

  5. html5调用手机摄像头,实现拍照上传功能

    http://www.glve.net/html5-calls-cell-phone-cameras-to-achieve-photo-upload-feature.html 今天做手机网站,想实现手 ...

  6. 使用HTML5+调用手机摄像头和相册

    前言: 前端时间使用HTML5做了一个WEB端APP,其中用到了H5页面调用手机摄像头的功能,当时也是花了不少时间去研究.最终是采用了HTML5plus(HTML5+)的方式完成了该功能,现将具体方法 ...

  7. Html5调用手机摄像头并实现人脸识别

    需求 混合App开发,原生壳子+webApp,在web部分调用原生摄像头功能并且在网页指定区域显示摄像头内容,同时可以手动拍照并进行人脸识别,将识别结果显示在网页上. 技术栈 vue.Html5.vi ...

  8. html5调用手机摄像头和相册,h5 调用手机摄像头/相册

    html 部分 js 部分 getBase64: function (file, callback) { var maxWidth = 640 if (file.files && fi ...

  9. getUserMedia API及HTML5 调用手机摄像头拍照

    https://segmentfault.com/a/1190000011793960

最新文章

  1. sp_executesql 使用复杂的 Unicode 表达式
  2. SAP ABAP 点滴记录
  3. Unity3D学习(五):实现一个简单的视觉感知
  4. Python——逻辑运算(or,and)
  5. Mac系统下如何使用命令行方式启动MySQL
  6. android二级联动购物车,Android实现二级购物车的全选加反选、总价功能
  7. java基础三--IO流(1)
  8. Java并发编程之线程安全性
  9. Freeswitch 常用功能命令及配置详解2021-06-06
  10. 开放大学毕业生自我鉴定计算机,开放大学毕业生自我鉴定范文500字(精选7篇)...
  11. GBDT训练分类器时,残差是如何计算的?
  12. 等保2.0详解(附3级检查表)
  13. DC-DC同步升压芯片PW5100替代PC1961,原厂供应
  14. 品鑒「天籁般的印第安音乐,每次聆听都是一场心灵的洗礼」2019年 06月27星期四
  15. 基于Bert论文构建Question-Answering模型
  16. 【计算机科学基础】图灵机
  17. SUPERSCAN IIE接线图
  18. 数据空间变换——栅格影像值域映射到0-255范围
  19. PHP初级程序员能力测试参考答案
  20. 理解react生命周期,以及react生命周期的使用场景

热门文章

  1. AI创业周报第3期:自动驾驶创企纷纷挖角Waymo特斯拉,AI制药不再是个伪命题
  2. 市场调研报告-快餐包装市场现状及未来发展趋势
  3. QT——简单介绍 *.pro、*.pri、*.prf、*.prl四种文件
  4. 【IAR】MSP430工程
  5. 如何正确的理解PSRR
  6. S_ALR_87013611报表 列标题为英文处理
  7. pytorch lstm源代码解读
  8. Stata计算可操纵性应计利润——基于琼斯模型
  9. 新晋产能巨人特斯拉:Giga Texas 45秒一辆新车
  10. python:实现prefix conversions string前缀转换字符串算法(附完整源码)