`
吖龙Sam
  • 浏览: 21002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

最近在做微信小程序,由于也是一边学习一边完成,把一些平时遇到的问题记录一下,方便以后查阅,也方便后面的人借鉴。

现在有一个需求:要在小程序里做一个分享朋友圈的功能。由于微信API暂时不支持分享朋友圈,于是想到另外一种方案,在微信小程序页面里先生成一个图片,这个图片里带二维码,然后再用这个图片发朋友圈,其他朋友就可以在朋友圈里识别这个二维码了。其中遇到的一些问题:

1.图片的生成

2.图片的下载

3.图片的保存

 

解决:

1.图片生成:这个比较简单,给服务端传入一些参数,服务端返回一个图片URL地址就可以了。

 

2.图片的下载:这个用到微信小程序的API:wx.downloadFile(OBJECT)

这个api是下载文件,属于网络服务,微信规定在用到网络相关的API时需要进行服务器域名配置,简单说就是登录微信后台,把这个下载域名配置在后台中就可以了。

 

3.图片的保存,这个图片保存在系统相册中,用到微信API:wx.saveImageToPhotosAlbum(OBJECT)

保存图片到系统相册需要用户授权

 

直接上代码:

1.下载和保存图片到系统相册中的代码:

function downloadImage(imageUrl) {
  // 下载文件
  wx.downloadFile({
    url: imageUrl,
    success: function (res) {
      console.log("下载文件:success");
      console.log(res);

      // 保存图片到系统相册
      wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,
        success(res) {
          console.log("保存图片:success");
          wx.showToast({
            title: '保存成功',
          });
        },
        fail(res) {
          console.log("保存图片:fail");
          console.log(res);
        }
      })
    },
    fail: function (res) {
      console.log("下载文件:fail");
      console.log(res);
    }
  })
}

 

2.保存相册的授权代码:

onSavePicClick: function(){
    console.log("onSavePicClick");
    var downloadUrl = this.data.imageUrl;
    console.log("downloadUrl=" + downloadUrl);

    if (!wx.saveImageToPhotosAlbum) {
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
      })
      return;
    }

    // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.writePhotosAlbum" 这个 scope
    wx.getSetting({
      success(res) {
        console.log("getSetting: success");
        if (!res.authSetting['scope.writePhotosAlbum']) {
          console.log("1-没有授权《保存图片》权限");
          
          // 接口调用询问
          wx.authorize({
            scope: 'scope.writePhotosAlbum',
            success(){
              console.log("2-授权《保存图片》权限成功");
               util.downloadImage(downloadUrl);
            },
            fail(){
              // 用户拒绝了授权
              console.log("2-授权《保存图片》权限失败");
              // 打开设置页面
              wx.openSetting({
                success: function(data) {
                  console.log("openSetting: success");
                },
                fail: function(data) {
                  console.log("openSetting: fail");
                }
              });
            }
          })
        } else {
          console.log("1-已经授权《保存图片》权限");
          util.downloadImage(downloadUrl)
        }
      },
      fail(res) {
        console.log("getSetting: success");
        console.log(res);
      }

    })
  
  },

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    微信小程序保存图片到相册权限设置

    微信小程序保存图片到相册可以分成两种:一种是保存网络图片,一种是保存本地图片 保存网络图片: var url = '网络图片路径'; wx.downloadFile({ url: url, success: function (res) { var benUrl = res...

    微信小程序实现保存图片到相册功能

    综上所述,实现微信小程序保存图片到相册的功能,需要开发者精心设计权限检查与授权流程,并且在保证用户操作流畅性的同时,确保代码的可维护性和用户体验的舒适性。通过上述步骤,开发者可以在微信小程序中实现这一...

    微信小程序之通过Canvas生成图片保存到手机相册

    此外,由于微信小程序的安全机制,涉及到用户隐私的数据(如图片)不能直接在服务器端处理,所以生成图片和保存到相册的操作必须在客户端完成。 综上所述,微信小程序结合Canvas可以实现丰富的图形绘制功能,并通过...

    微信小程序实现图片压缩

    本文实例为大家分享了微信小程序图片压缩的具体代码,供大家参考,具体内容如下 设计思路: 选择图片后调用微信压缩图片接口,压缩后接收压缩图片的临时地址,调用微信储存接口保存图片至本地。 参数: imagesrc:...

    微信小程序多图片上传到后台,视频上传

    微信小程序提供了一系列的API供开发者使用,其中`wx.chooseImage`用于选择图片,`wx.saveFile`用于保存文件到本地,`wx.uploadFile`则用于将本地文件上传到服务器。 2. **图片选择**: - `wx.chooseImage`接口...

    微信小程序canvas画布实现画布保存到相册(包含授权过程)

    总之,微信小程序结合canvas画布,为开发者提供了丰富的图形处理能力,而将canvas内容保存到相册则需要理解小程序的授权机制和文件操作接口。通过这个案例,开发者不仅可以学习到canvas的使用,还能了解到微信小程序...

    微信小程序实现 用canvas 生成图片 并保存

    6. **保存图片**:使用`wx.saveImageToPhotosAlbum`将图片保存到用户的相册,同时需要处理用户授权问题。 在整个过程中,需要注意兼容性和用户体验,比如处理图片加载失败的情况,优化绘图性能,以及适配不同设备的...

    微信小程序使用canvas绘图并且把图片上传到服务器上面.rar

    本教程将详细介绍如何在微信小程序中使用Canvas进行绘图,并将处理后的图片上传到服务器。 首先,我们需要在小程序的页面JSON配置文件中引入Canvas组件。例如: ```json { "component": true, "usingComponents...

    微信小程序:小程序上传用户图像至服务器,服务器处理后,小程序下载图片并保存到本地。

    微信小程序:小程序上传用户图像至服务器,服务器处理后,小程序下载图片并保存到本地。

    微信小程序 实现canvas按照原图等比例不失真绘制海报图并保存海报图片到本地相册

    以上就是微信小程序中使用canvas实现等比例不失真绘制海报图并保存到本地相册的关键步骤。在实际开发中,你可能还需要添加更多的细节,如文本绘制、渐变、阴影等效果,以及更完善的用户交互体验。

    微信小程序上传图片包含多图上传,支持9图,无限制图片数目

    首先,我们要了解微信小程序中的`wx.chooseImage`接口,这是用于选择本地相册或拍照获取图片的关键函数。它返回一个Promise对象,包含着用户选择的图片路径信息。默认情况下,`chooseImage`接口一次只能选择最多9张...

    app微信小程序画画源码

    可以使用微信小程序的云数据库服务(如微信小程序云开发)或自建的数据库系统。同时,考虑到多设备间的同步,可能还需要实现云同步功能。 9. **测试与调试**: 开发过程中,需要使用微信开发者工具进行代码调试、...

    uni-app微信小程序生成海报.rar

    - 代码上传与审核:完成开发后,将uni-app项目打包并上传至微信开发者工具,提交审核,最后发布到微信小程序平台。 总结来说,uni-app为微信小程序生成海报提供了便利,通过组合使用uni-app的组件、API以及Vue的...

    微信小程序Demo-妹纸图:API,打开图片,长按保存图片-附完整源代码.rar

    微信小程序Demo-妹纸图:API,打开图片,长按保存图片-附完整源代码.rar 资源介绍 本资源是一个基于微信小程序的妹纸图Demo,提供了API接口获取妹纸图片、打开图片和长按保存图片功能。开发者可以根据需要对项目...

    微信小程序封装上传文件组件

    首先,微信小程序提供了`wx.chooseImage`接口,用于让用户从手机相册或相机中选择图片。这个接口会返回一个本地临时文件的数组,这些文件可以通过`wx.uploadFile`接口上传到服务器。在封装上传文件组件时,我们需要...

    微信小程序文件上传(手机文件管理器上传)

    综上所述,实现微信小程序的文件上传功能涉及到前端交互设计、微信小程序API的使用、文件处理、网络请求、错误处理等多个方面。在开发过程中,需要充分考虑用户体验和安全性,同时也要充分利用微信小程序提供的工具...

    微信小程序中上传图片并进行压缩的实现代码

    微信小程序上传图片并压缩的实现涉及几个关键步骤,包括选择图片、将图片绘制到canvas上以及上传处理后的图片。下面将详细介绍这些步骤中涉及的知识点。 首先,我们需要理解微信小程序提供了哪些API来实现这些功能...

    微信小程序美女图片

    在这个案例中,可能使用了微信的图片处理API,如wx.getImageInfo()用于获取图片信息,wx.saveImageToPhotosAlbum()用于保存图片到手机相册。 8. **权限管理**:微信小程序涉及到用户隐私,因此需要处理好权限问题。...

    微信小程序生成海报demo

    生成海报功能则是微信小程序中一种实用的工具,通常用于用户分享商品、活动或者个人成就等,用户可以自定义选择信息,如图片、文字、二维码等,一键生成一张美观的海报图片,然后分享到朋友圈或聊天中。 在这个demo...

Global site tag (gtag.js) - Google Analytics