热门标签 | HotTags
当前位置:  开发笔记 > 小程序 > 正文

小程序实现分销海报

小程序实现分销海报1、简介:用户生成属于自己的海报,其他人扫码此图片上的二维码,进入相应的小程序页面,同时带上相关的参数parent_id从而绑定上下级关系;注意:一下是

小程序实现分销海报

 

1、简介:

  用户生成属于自己的海报,其他人扫码此图片上的二维码,进入相应的小程序页面,同时带上相关的参数 parent_id 从而绑定上下级关系;

注意:一下是微信小程序的实现方法;支付宝基本同样,只有稍微小的部分修改,例如:支付宝小程序不需要调起授权保存相册,会在你使用的时候自动调用

2、例如海报:

下载背景图失败,稍后重试!", icon: "none", duration: 5000 }); } }); }, // 绘制画布 微信小程序 setCanvas() { let that = this; let ctx = wx.createCanvasContext("myCanvas"); ctx.rect( 0, 0, that.canvasWidth, that.canvasHeight ); ctx.setFillStyle("#fff"); ctx.fill(); // 背景图片 ctx.drawImage( \'../../../static/card_bg.png\', 0, 0, that.canvasWidth, that.canvasHeight ); // 用户图片 ctx.drawImage( that.avatarImg, 30, 40, 50, 50 ); that.drawFont(ctx, that.avatarContent, 100, 70,0,0,0,17,14,\'#000\'); that.drawFont(ctx, \'长按保存图片\', 140, 25,0,0,0,17,14,\'#333\'); // code图片 ctx.drawImage( // that.codeUrl, \'../../../static/123860applet.png\', that.canvasWidth/3, that.canvasWidth/3, that.canvasWidth/3, that.canvasWidth/3 ); ctx.globalCompositeOperation = "source-over"; ctx.draw(); //绘制到canvas },

// 长安图片
            getAuthAndSaveImg(){
                let _this = this;
                wx.getSetting({
                    success(res) {
                        if (res.authSetting[\'scope.writePhotosAlbum\']) {
                            _this.saveShareImg();
                        } else if (res.authSetting[\'scope.writePhotosAlbum\'] === undefined) {
                            wx.authorize({
                                scope: \'scope.writePhotosAlbum\',
                                success() {
                                    _this.saveShareImg();
                                },
                                fail(){
                                    wx.showToast({
                                        title: \'您没有授权,无法保存到相册\',
                                        icon: \'none\',
                                        duration: 2000
                                    })
                                }
                            })
                        }else {
                            uni.openSetting({
                                success(res) {
                                    if (res.authSetting[\'scope.writePhotosAlbum\']) {
                                        _this.saveShareImg();
                                    }else{
                                        wx.showToast({
                                            title:\'您没有授权,无法保存到相册\',
                                            icon:\'none\',
                                            duration: 2000
                                        })
                                    }
                                }
                            })
                        }
                    }
                })
            },
            
            //点击保存到相册
            saveShareImg: function () {
                var that = this;
                wx.showLoading({
                    title: \'正在保存\',
                    mask: true,
                })
                setTimeout(function () {
                    wx.canvasToTempFilePath({
                        canvasId: \'myCanvas\',
                        fileType: \'jpg\',
                        success: function (res) {
                            wx.hideLoading();
                            var tempFilePath = res.tempFilePath;
                            wx.saveImageToPhotosAlbum({
                                filePath: tempFilePath,
                                success(res) {
                                    wx.showModal({
                                        content: \'图片已保存到相册,赶紧晒一下吧~\',
                                        showCancel: false,
                                        confirmText: \'好的\',
                                        confirmColor: \'#333\',
                                        success: function (res) {
                                            
                                        },
                                        fail: function (res) { 
                                            wx.showToast({
                                                title: \'系统繁忙,请稍后重新尝试!\',
                                                icon: \'none\',
                                                duration: 2000
                                            })
                                        }
                                    })
                                },
                                fail: function (res) {
                                    wx.showToast({
                                        title: res.errMsg,
                                        icon: \'none\',
                                        duration: 2000
                                    })
                                }
                            })
                        }
                    });
                }, 1000);
            },
            
            // 设置文字大小,并填充颜色。
            drawFont: function (ctx, contentTitle, x, y, x1, y1,x2,y2,fontSize,color) {
                let that = this;
                let str = contentTitle;
                let firstline;
                ctx.setFontSize(fontSize);
                ctx.setFillStyle(color);
                ctx.fillText(firstline, x + x1, y + y1);
                
            },
        },
    }

 支付宝小程序绘制 以及 长安下载;支付宝小程序不需要去判断授权 直接下载就行 会自动调用授权

draw() {
                const ctx = my.createCanvasContext(\'canvas\')
                
                ctx.drawImage(this.codeTestPicBg, 0, 0, this.canvasWidth, this.canvasHeight);
                ctx.drawImage(this.avatarImg, 30, 40, 50, 50);
                var numH = 1.234*(this.canvasWidth/2);
                ctx.drawImage(this.codeUrl, this.canvasWidth/4, this.canvasWidth/3, this.canvasWidth/2,numH);
                
                ctx.setFontSize(16)
                ctx.fillText(\'长按保存图片\', 140, 20);
                ctx.fillText(this.avatarContent, 100, 70);
                
                ctx.globalCompositeOperation = "source-over";
                ctx.draw()
            },
            
            
            // 长安图片  点击保存到相册
            getAuthAndSaveImg(){
                var that = this;
                my.showLoading({
                    title: \'正在保存\',
                    mask: true,
                })
                setTimeout(function () {
                    const ctx = my.createCanvasContext(\'canvas\');
                    ctx.toTempFilePath({
                        fileType: \'jpg\',
                        success: function (res) {
                            my.hideLoading();
                            var tempFilePath = res.apFilePath;
                            my.saveImage({
                                url: tempFilePath,
                                showActionSheet: true,
                                success(res) {
                                    my.alert({
                                        title: \'温馨提示\',
                                        content: \'图片已保存到相册,赶紧晒一下吧~\',
                                        buttonText: \'我知道了\',
                                        success: function (res) {
                                            
                                        },
                                        fail: function (res) { 
                                            my.showToast({
                                                title: \'系统繁忙,请稍后重新尝试!\',
                                                icon: \'none\'
                                            })
                                        }
                                    })
                                },
                                fail: function (res) {
                                    my.showToast({
                                        title: res.errMsg,
                                        icon: \'none\'
                                    })
                                }
                            })
                        }
                    });
                }, 1000);
            },

 

7、上下级关系处理:

  例如扫码后跳转商城首页,那么在首页的onload 事件中,拿到 e ,便能拿到相应的传递的参数,例如:parent_id

onLoad(e) {
    if(e.parent_id){
        this.user_id = e.parent_id;
        uni.setStorageSync(\'isplatformUserID\', this.user_id);
    }
            
},

 

8、canvas两个图片重叠时显示的方法——globalCompositeOperation


推荐阅读
  • 支付宝小程序怎么添加?支付宝小程序扫描二维码添加介绍
    支付宝小程序今日悄然上线,相信很多小伙伴都应该知道,这次上线不少小伙伴想知道自己该怎么添加,因此不知道的小伙伴,就让小编给大家详细的讲讲吧。支付宝小程序扫描二维码添加介绍日前支付宝 ... [详细]
  • 本文讨论了如何在微信支付宝两套小程序中生成一张二维码,实现支付宝扫码进入支付宝小程序和微信扫码进入微信小程序的对应桌号进行点餐的功能,提供了一些实现方案供参考。 ... [详细]
  • 文|Tech星球(微信ID:tech618)尹非凡一位微信的产品经理告诉Tech星球,据传,在小程序刚做出来的时候,张小龙认 ... [详细]
  • 在微信小程序上卖货如此简单!小白商家也能实操的小程序开店流程!
    实体店开发小程序的主要目的是拓宽客户的来源渠道,增加销量。对于没有任何互联网运营经验的小白商家,又如何借助微信小程序在线上卖货呢?下面我们介绍下简单的实操流程:一、小程序注册与认证 ... [详细]
  • 新趋势下的物业管理再思考
    2019年的7-8月,中国消费者协会组织开展了一项住宅小区物业服务调查体验活动,随机选取了全国36个城市的148个住宅小区进行调查。从调查数据来看&#x ... [详细]
  • 团队作业第二次—项目选题报告(追光的人)
    所属课程软件工程1916作业要求团队作业第二次—项目选题报告团队名称追光的人作业目标组员提出选题,大家挑选出可行性最高的进行分析,制作选题报告和选题PPT目录队员贡献分比例选题报告 ... [详细]
  • 小程序_支付宝小程序是什么?入驻教程详解
    今年可谓是小程序的大纪年,微信与支付宝陆续推出了自家小程序,两军对垒,大有死磕到底之意。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 智能消息服务数字短信使用FAQ
    本文介绍了智能消息服务数字短信的开通流程和操作步骤,包括开通数字短信的路径、申请流程、控制台操作以及API接口对接模式。同时还介绍了数字短信模板的创建规则和要求,包括审核状态的说明和建议。 ... [详细]
  • 如何关闭迅雷会员自动续费详细介绍
    友情提示:教程内容为了更好的解决大家的问题,所以电脑教程网的每一篇内容都是图文并茂的在多端设备下呈现给大家。告诉大家的是,文章内里的图片也尤为重要, ... [详细]
  • php实现文件下载代码一例,
    php教程|php手册php,实现,文件下载,代码,一例,php,实现,文件下载,代码,一例,我们,需要,用到,header,函数,来,发送,php教程-php手册php实现文件下 ... [详细]
  • Android程序员面试宝典自定义控件一分钟实现贴纸功能一分钟实现TextView高亮一分钟实现新手引导页一分钟实现ViewPager卡片一分钟实现加载对话框一分钟实现轮播图一分钟 ... [详细]
  • 一码支付也叫“聚合支付”,就是一个将多种互联网移动支付方式整合起来的支付交易接口,简称聚合支付码它借助银行、非银行支付机构以及转接清算组织组织的支付通道 ... [详细]
  • 二维码为我们的生活带来了太多便利,乘坐交通工具、移动支付、出入认证等等动作,都只需要借助“扫一扫”即可完成myeclipse10破解。但问题也随之而来:我们时常 ... [详细]
  • 1、前言在macOS下,如果对大量图片进行处理或数据收集,查找了一下,通过使用sips命令,可以进行图片的大部分操作处理,如果使用shell,就可以灵活和自动化的批量操作图片!2、 ... [详细]
author-avatar
雨爱艳6688
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有