微信公众号开发JSSDK上传图片(多图上传)

前面做了微信公众号开发,涉及到了图片上传功能。微信jssdk-api带有一套完整的调用选择本地图片上传的功能,很多朋友在问到多图上传的问题。在这里分享一下自己的做法,其实并不是自己的做法,就是完全按照微信开发文档的做法,很多朋友可能没有仔细看文档,或者文档内容太多所以不想看,然后就不知道做法了,我这里挂出来,是这样做的

var images = {
    localId: [],
    serverId: []
  };
  //选择图片
  document.querySelector('#chooseImage').onclick = function () {
    wx.chooseImage({
      success: function (res) {
        images.localId = res.localIds;
        alert('已选择 ' + res.localIds.length + ' 张图片');
      }
    });
  };

  // 5.2 图片预览
  document.querySelector('#previewImage').onclick = function () {
    wx.previewImage({
      current: 'http://img5.douban.com/view/photo/photo/public/p1353993776.jpg',
      urls: [
        'http://img3.douban.com/view/photo/photo/public/p2152117150.jpg',
        'http://img5.douban.com/view/photo/photo/public/p1353993776.jpg',
        'http://img3.douban.com/view/photo/photo/public/p2152134700.jpg'
      ]
    });
  };

  // 5.3 上传图片
  document.querySelector('#uploadImage').onclick = function () {
    if (images.localId.length == 0) {
      alert('请先使用 chooseImage 接口选择图片');
      return;
    }
    var i = 0, length = images.localId.length;
    images.serverId = [];
    function upload() {
      wx.uploadImage({
        localId: images.localId[i],
        success: function (res) {
          i++;
          //alert('已上传:' + i + '/' + length);
          images.serverId.push(res.serverId);
          if (i < length) {
            upload();
          }
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      });
    }
    upload();    /*********************多张图片,这里上传使用的是递归******************************/
  };

  // 5.4 下载图片
  document.querySelector('#downloadImage').onclick = function () {
    if (images.serverId.length === 0) {
      alert('请先使用 uploadImage 上传图片');
      return;
    }
    var i = 0, length = images.serverId.length;
    images.localId = [];
    function download() {
      wx.downloadImage({
        serverId: images.serverId[i],
        success: function (res) {
          i++;
          alert('已下载:' + i + '/' + length);
          images.localId.push(res.localId);
          if (i < length) {
            download();
          }
        }
      });
    }
    download();      /*********************多张图片,这里下载使用的是递归******************************/

  };
多图上传或者下载都是使用的递归方法,在Android或者IOS中都是行得通的(在这里多说一句,有些接口,Android行得通,IOS却不行;IOS可以的,Android可能又会有问题,当然这只是极个别现象,用多了就会发现)。

这些接口都是需要配合着图片选择来用的哦

下边二维码可以用微信扫描,上边有所有的接口demo


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uniapp是一款十分值得推荐的跨平台开发框架,主要面向移动端应用开发,可以同时支持iOS、Android、H5等多个平台的应用开发。而在uniapp中,我们可以很容易地集成一些公共的第三方服务,比如微信公众号服务。而对于公众号来说,它是一个非常重要的推广工具,为了让更多的人能够了解和分享我们的内容,其中一个重要的功能就是在公众号右上角添加分享按钮。 对于uniapp开发者来说,实现公众号右上角分享功能并不难,我们只需要一些基本的知识储备即可完成,下面是一些实现分享功能的关键步骤: 1. 添加微信JSSDK库 要开发微信分享功能,首先需要引入微信JSSDK库,我们可以在uniapp的index.html文件中通过CDN方式引入微信JSSDK库,并且在vue组件的mounted()函数中进行初始化。 2. 编写分享配置信息 在调用微信JSSDK库之前,我们需要编写一个分享配置信息对象,在这个对象中,我们需要指定应用的APPID、分享标题、分享描述信息、分享链接以及分享图像等相关信息。这里需要注意的是,图片必须是在HTTPS协议下的图片链接地址。 3. 调用微信分享接口 完成了JSSDK库的引入和分享配置信息的编写之后,我们就可以调用微信的分享接口进行分享,只需要调用微信提供的onMenuShareAppMessage和onMenuShareTimeline两个API,即可实现在公众号右上角添加分享功能。 总之,通过uniapp框架的应用开发,我们可以非常方便地实现公众号右上角分享功能,通过这个功能,我们可以让更多人了解我们的应用,并且分享给更广泛的用户群体,促进应用的推广和传播。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值