微信小程序开发之相册选择和拍照详解及实例代码


Posted in Javascript onFebruary 22, 2017

微信小程序 拍照和相机选择详解

前言:

小程序中获取图片可通过两种方式得到,第一种是直接打开微信内部自己的样式,第一格就是相机拍照,后面是图片,第二种是弹框提示用户是要拍照还是从相册选择,下面一一来看。

选择相册要用到wx.chooseImage(OBJECT)函数,具体参数如下:

微信小程序开发之相册选择和拍照详解及实例代码

直接来看打开相机相册的代码:

Page({
 data: {
  tempFilePaths: ''
 },
 onLoad: function () {
 },
 chooseimage: function () {
  var that = this;
  wx.chooseImage({
   count: 1, // 默认9 
   sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 
   sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 
   success: function (res) {
    // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 
    that.setData({
     tempFilePaths: res.tempFilePaths
    })
   }
  })

 },




})

方法一效果图如下:

微信小程序开发之相册选择和拍照详解及实例代码

个人认为第二种用户体验要好一点,效果如下:

微信小程序开发之相册选择和拍照详解及实例代码

点击获取弹框提示,代码如下:

Page({
 data: {
  tempFilePaths: ''
 },
 onLoad: function () {
 },
 chooseimage: function () {
  var that = this;
  wx.showActionSheet({
   itemList: ['从相册中选择', '拍照'],
   itemColor: "#CED63A",
   success: function (res) {
    if (!res.cancel) {
     if (res.tapIndex == 0) {
      that.chooseWxImage('album')
     } else if (res.tapIndex == 1) {
      that.chooseWxImage('camera')
     }
    }
   }
  })

 },

 chooseWxImage: function (type) {
  var that = this;
  wx.chooseImage({
   sizeType: ['original', 'compressed'],
   sourceType: [type],
   success: function (res) {
    console.log(res);
    that.setData({
     tempFilePaths: res.tempFilePaths[0],
    })
   }
  })
 }


})

文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。

布局文件:

<button style="margin:30rpx;" bindtap="chooseimage">获取图片</button>
<image src="{{tempFilePaths }}" catchTap="chooseImageTap" mode="aspectFit" style="width: 100%; height: 450rpx" />

官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery 性能优化指南 (1)
May 21 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
Mar 06 Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
node.js 抓取代理ip实例代码
Apr 30 Javascript
基于BootStrap的前端分页带省略号和上下页效果
May 18 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 Javascript
详解Node.JS模块 process
Aug 31 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 Javascript
js仿微博动态栏功能
Feb 22 #Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 #Javascript
svg动画之动态描边效果
Feb 22 #Javascript
jQuery实现的简单拖动层示例
Feb 22 #Javascript
Bootstrap 3 进度条的实现
Feb 22 #Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 #Javascript
canvas 绘制圆形时钟
Feb 22 #Javascript
You might like
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
28个JS验证函数收集
2010/03/02 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
vue实现购物车加减
2020/05/30 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
python——全排列数的生成方式
2020/02/26 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
python 实现控制鼠标键盘
2020/11/27 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
大学理论知识学习自我鉴定
2014/04/28 职场文书
医德医魂心得体会
2014/09/11 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
小学母亲节活动总结
2015/02/10 职场文书
2015年工会工作总结
2015/03/30 职场文书
西安事变观后感
2015/06/12 职场文书
2019大学生实习报告
2019/06/21 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
Nginx安装配置详解
2022/06/25 Servers