轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序入门:相册选择,拍照,toast等弹框提示

发布者: yocom | 发布时间: 2017-11-19 07:39| 查看数: 3156| 评论数: 1|帖子模式

作者:何东_hd,来自原文地址

一:相册选择,拍照

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

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

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

方法一效果图如下: 

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

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

  1. Page({
  2. data: {
  3. tempFilePaths: ''
  4. },
  5. onLoad: function () {
  6. },
  7. chooseimage: function () {
  8. var that = this;
  9. wx.showActionSheet({
  10. itemList: ['从相册中选择', '拍照'],
  11. itemColor: "#CED63A",
  12. success: function (res) {
  13. if (!res.cancel) {
  14. if (res.tapIndex == 0) {
  15. that.chooseWxImage('album')
  16. } else if (res.tapIndex == 1) {
  17. that.chooseWxImage('camera')
  18. }
  19. }
  20. }
  21. })
  22. },
  23. chooseWxImage: function (type) {
  24. var that = this;
  25. wx.chooseImage({
  26. sizeType: ['original', 'compressed'],
  27. sourceType: [type],
  28. success: function (res) {
  29. console.log(res);
  30. that.setData({
  31. tempFilePaths: res.tempFilePaths[0],
  32. })
  33. }
  34. })
  35. }
  36. })

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

布局文件:

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

官方文档:

二:toast等弹框提示

微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showToast(OBJECT)。 
看下有关参数说明: 

 
代码很简单:

  1. wx.showToast({
  2. title: '成功',
  3. icon: 'succes',
  4. duration: 1000,
  5. mask:true
  6. })

mask属性好像并没有起作用。有一点值得注意的是提示的延迟时间是有限制的,最大10000毫秒。 
还有一个函数是wx.hideToast(),这个是隐藏toast,主要用于显示加载提示的时候用到,如:

  1. wx.showToast({
  2. title: '加载中',
  3. icon: 'loading',
  4. duration: 10000
  5. })
  6. setTimeout(function(){
  7. wx.hideToast()
  8. },2000)

本来加载时间是10000毫秒的,然后2000毫秒的时候就隐藏了,这个具体情况而定了哈。

第二个弹窗是模态弹窗:wx.showModal(OBJECT) 
参数如下: 

这个跟我们Android里面的Dialog相似,效果如下: 

代码如下:

  1. wx.showModal({
  2. title: '提示',
  3. content: '模态弹窗',
  4. success: function (res) {
  5. if (res.confirm) {
  6. console.log('用户点击确定')
  7. }else{
  8. console.log('用户点击取消')
  9. }
  10. }
  11. })

最后一个是操作菜单:wx.showActionSheet(OBJECT) 
这个函数我们在上一篇博文用过,这里说一下也无妨。先看一下参数介绍: 

success有一个返回参数: 

这里直接贴官方实例了:

  1. wx.showActionSheet({
  2. itemList: ['A', 'B', 'C'],
  3. success: function(res) {
  4. console.log(res.tapIndex)
  5. },
  6. fail: function(res) {
  7. console.log(res.errMsg)
  8. }
  9. })

效果图: 

这里有个bug,弹出showActionSheet之后,点击取消或者阴影处,会执行完fail之后,继续执行success函数,所以如果在这里要做跳转或者什么操作,还是自己定义比较好。 
就是这么简单,赶紧动起来试试吧。

最新评论

8725114 发表于 2022-5-3 15:27
源代码下载高清图片

浏览过的版块

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表