根据字符串生成二维码并保存到相册

本文介绍了一种在微信小程序中生成并保存二维码的方法。通过使用自定义的二维码生成库,结合微信小程序API实现二维码的绘制及保存至相册的功能。文章详细展示了wxml和js代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接贴代码啦

wxml:

    <view class="bot">
        <view class="canvasImg">
            <canvas canvas-id="myQrcode"></canvas>
        </view>
        <view class="btnView">
            <button style="background:#03BF68" bindtap='saveBtn'>保存相册</button>
            <button style="background:#FC9C3C" data-name="shareBtn" open-type="share">分享养料</button>
        </view>
    </view>

js:

引用文件(记得去下载哦) var drawQrcode = require("../../../utils/weapp.qrcode.js");

    //生成二维码 ---
    draw: function() {
        drawQrcode({
            width: 100, //二维码宽高,宽高要与canvas标签宽高一致
            height: 100,
            canvasId: 'myQrcode',
            text: "http://yangliao.llhlec.com/index.php/Index/index/download?storeid=38&from=singlemessage&user_id=" +
                getApp().globalData.userInfo.user_id //二维码内容
        })
    },
    // 保存二维码 --- 
    saveBtn: function() {
        var that = this;
        var RQsrc = "";
        wx.canvasToTempFilePath({
            canvasId: "myQrcode",
            success: function(res) {
                console.log(res);
                RQsrc = res.tempFilePath;
            },
            fail: function(res) {
                console.log(res);
            }
        });
        wx.getSetting({
            success(res) {
                if (!res.authSetting['scope.writePhotosAlbum']) {
                    wx.authorize({
                        scope: 'scope.writePhotosAlbum',
                        success(res) {
                            console.log(res)
                            // 用户已经同意小程序使用保存相册功能,后续调用 wx.saveImageToPhotosAlbum 接口不会弹窗询问
                            if (wx.saveImageToPhotosAlbum) {
                                wx.saveImageToPhotosAlbum({
                                    filePath: RQsrc,
                                    success(res) {
                                        console.log(res.errMsg);
                                        wx.showToast({
                                            title: '保存成功',
                                            icon: 'none'
                                        })
                                    },
                                    fail: function(res) {
                                        console.log(res.errMsg);
                                        wx.showToast({
                                            title: '保存失败',
                                            icon: 'none'
                                        })
                                    }
                                })
                            } else {
                                wx.showToast({
                                    title: '您的微信版本过低,请更新',
                                    icon: 'none'
                                })
                            }
                        },
                        fail: function(err) {
                            console.log(err)
                        }
                    })
                } else {
                    if (wx.saveImageToPhotosAlbum) {
                        wx.saveImageToPhotosAlbum({
                            filePath: RQsrc,
                            success(res) {
                                console.log(res.errMsg);
                                wx.showToast({
                                    title: '保存成功',
                                    icon: 'none'
                                })
                            },
                            fail: function(res) {
                                console.log(res.errMsg);
                                wx.showToast({
                                    title: '保存失败',
                                    icon: 'none'
                                })
                            }
                        })
                    } else {
                        wx.showToast({
                            title: '您的微信版本过低,请更新',
                            icon: 'none'
                        })
                    }
                }
            }
        })
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值