商品单品生成带小程序二维码海报页图片.md

需求效果如图

微信图片_20190129175413.png
  1. 点击【分享单品】按钮进入海报生成页面
微信图片_20190129175453.png
  1. 小程序海报页面渲染单品信息、用户头像和昵称和小程序码(这是小程序页面按元素渲染不是一整张图片),所以点击【生成图片保存到相册】生成图片保存到本地进行,再进行海报图片分享传播

方案关键点

海报图片基本是后端生成,前端渲染页面外加将生成的图片下载保存到本地相册,让用户自行分享。

小程序关键代码

  1. 点击【单品分享】
    首先按钮绑定跳转海报页面的事件,按钮上绑上dataset(事件源组件上由data-开头的自定义属性组成的集合),用wx.navigateTo{(...)} 跳转海报页面的url后面带上这些自定义属性的值传过去。
<view style='display:flex;flex-direction:column;justify-content:center;align-items:center;width:164rpx;' bindtap='sharePro' data-goodId='{{item.goodsId}}' data-brandId='{{item.brandId}}' data-goodsSource='{{item.goodsSource}}'>
       <image src="..." style='width:40rpx;height:40rpx'></image>
       <text style='font-size:22rpx;color:#777676;line-height:26rpx'>分享单品</text>
</view>
sharePro: function (event) {
        var brandid = event.currentTarget.dataset.brandid;
        var goodid = event.currentTarget.dataset.goodid;
        var goodssource = event.currentTarget.dataset.goodssource;
        wx.navigateTo({
            url: '/pages/poster/poster?brandid=' + brandid + '&goodid=' + goodid + '&goodssource=' + goodssource,
        })
    }
  1. 进入海报页
    获得参数,传参发送请求,获取商品信息和小程序码的图片地址,然后数据绑定渲染到页面上。
    点击生成海报按钮,首先传参发送请求,成功请求后,获取后端生成的海报页图片的地址,wx.downloadFile,wx.saveImageToPhotosAlbum将图片保存到本地。
                      var imgSrc = "..."//(请求成功接受到从后端生成的海报页图片的url地址);
                            //下载文件资源到本地
                            wx.downloadFile({
                                url: imgSrc,
                                success: function(res) {
                                    console.log(res);
                                    //图片保存到本地
                                    wx.saveImageToPhotosAlbum({
                                        filePath: res.tempFilePath,
                                        success: function(data) {
                                            console.log(data);
                                        },
                                        fail: function(err) {
                                            console.log(err);
                                            if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
                                                console.log("用户一开始拒绝了,我们想再次发起授权")
                                                console.log('打开设置窗口')
                                                wx.openSetting({
                                                    success(settingdata) {
                                                        console.log(settingdata)
                                                        if (settingdata.authSetting['scope.writePhotosAlbum']) {
                                                            console.log('获取权限成功,给出再次点击图片保存到相册的提示。')
                                                        } else {
                                                            console.log('获取权限失败,给出不给权限就无法正常使用的提示')
                                                        }
                                                    }
                                                })
                                            }
                                        },
                                        complete: function() {
                                            wx.hideLoading();
                                        }
                                    })
                                }

                            })
  1. 扫海报图上的小程序码进入显示具体单品信息
    前面第二步里提交参数获取小程序码渲染显示到小程序页面的时候有个参数是用户的id。
    识别海报上小程序码进入页面的时候,在onload里options的scene,获取到二维码中的 scene 值,传scene给接口发送请求,解析里面的各项参数,从而跳转到具体商品页面,渲染呈现。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 昨天写了一篇小程序本地生成二维码的功能 小程序本地生成二维码,趁热打铁今天给大家分享一下小程序内生成海报的功能以及...
    dillon_fly阅读 111,635评论 17 33
  • 本文主要讲解小程序二维码的基本概念,帮助开发和运营人员更好的掌握小程序参数二维码,同时也包含小程序二维码官方文档解...
    zhuyuansj阅读 11,106评论 0 16
  • 七月 本周,公司接待了一所名样化学专业的大二学生实习,昨天是最后一天。下午,实习结束,副总裁于百忙之中抽出了一个...
    sz_frank阅读 305评论 0 0
  • 北平之秋便是天堂。今天是丁酉年立冬后的一周。早早计划去山里看看秋之美景,无奈琐事繁多,直至今日,方得偷闲。...
    清硕阅读 997评论 1 2
  • 我想象着你是如何直面这所谓的人生 譬如顺势掸去落在鼻尖的灰尘 譬如你不说话——看我们张牙舞爪 眼角留有泪 我们都是...
    肖尘梓阅读 168评论 0 0