微信小程序保存二维码的过程

1.使用wx.canvasToTempFilePath将二维码绘制到画布上。

复制代码
const ctx = wx.createCanvasContext('qrcodeCanvas');
ctx.drawImage('qrcodePath', 0, 0, canvasWidth, canvasHeight);
ctx.draw(false, () => {
  wx.canvasToTempFilePath({
    x: 0,
    y: 0,
    width: canvasWidth,
    height: canvasHeight,
    destWidth: canvasWidth,
    destHeight: canvasHeight,
    canvasId: 'qrcodeCanvas',
    success: (res) => {
      const tempFilePath = res.tempFilePath;
      // 接下来进行保存操作
    },
    fail: (err) => {
      console.error('canvasToTempFilePath failed', err);
    }
  });
});

2.利用wx.saveImageToPhotosAlbum保存绘制的二维码图片到相册。

复制代码
wx.saveImageToPhotosAlbum({
  filePath: tempFilePath,
  success: (res) => {
    console.log('saveImageToPhotosAlbum success', res);
    wx.showToast({
      title: '保存成功',
      icon: 'success',
      duration: 2000
    });
  },
  fail: (err) => {
    console.error('saveImageToPhotosAlbum failed', err);
    wx.showToast({
      title: '保存失败',
      icon: 'none',
      duration: 2000
    });
  }
});

需要注意的是,保存图片到相册需要用户授权,因此在调用wx.saveImageToPhotosAlbum之前,开发者需要先调用wx.getSetting获取用户的授权状态,并在用户同意授权后才能执行保存操作。

3.另外,在小程序的app.json文件中,需要添加相应的权限声明:

复制代码
{
  "permission": {
    "scope.userLocation": {
      "desc": "保存图片到相册"
    }
  }
}
相关推荐
WangHappy1 天前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序
小时前端1 天前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
icebreaker2 天前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker2 天前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
大米饭消灭者5 天前
Taro是怎么实现一码多端的【底层原理】
微信小程序·taro
FliPPeDround6 天前
Vitest Environment UniApp:让 uni-app E2E 测试变得前所未有的简单
微信小程序·e2e·前端工程化
FliPPeDround6 天前
微信小程序自动化的 AI 新时代:wechat-devtools-mcp 智能方案
微信小程序·ai编程·mcp
吴声子夜歌6 天前
小程序——布局示例
小程序
码云数智-大飞6 天前
如何创建自己的小程序,码云数智与有赞平台对比
微信小程序
luffy54596 天前
微信小程序页面使用类似filter函数的wxs语法
微信小程序·小程序