WeChat 애플릿은 Moments에 대한 공유를 실현합니다
Moments에서 공유 요즘 모든 사람이 흔히 사용하는 방법은 Canvas를 통해 사진을 생성하고 저장한 다음 직접 Moments에 전달하는 것입니다. 최근 프로젝트에 이런 요구 사항이 있어서 기록해 두었습니다.
포스터의 QR 코드를 스캔한 후 지정된 페이지로 바로 이동하려면 매개변수를 사용하여 QR 코드를 생성해야 합니다. 먼저 렌더링을 살펴보세요.
1. 먼저 , index.json 내부에
index.wxml 코드:
<view class="container"> <image src="{{shareImage}}" class="share-image"></image> <canvasdrawer painting="{{painting}}" class="canvasdrawer" bind:getImage="eventGetImage"/> <button bind:tap="eventDraw">绘制</button> <button bind:tap="eventSave">保存到本地</button> </view>
index.wxss 코드:
.share-image { width: 600rpx; height: 810rpx; margin: 0 75rpx; padding: 1px; margin-top: 40px; } button { margin-top: 100rpx; }
index.js 코드:
Page({ data: { painting: {}, shareImage: '', }, onLoad() { this.eventDraw() }, eventDraw() { var that = this; wx.showLoading({ title: '绘制分享图片中', mask: true }) this.setData({ painting: { width: 375, height: 568, clear: true, views: [ //这个是一个纯白的图片,给整个画布一个白背景,要不然会有马赛克 { type: 'image', url: 'https://XXX.com/weixin/item/bai.jpg', width: 375, height: 568 }, //边框,直接拿了一张图,当做边框 { type: 'image', url: 'https://XXXXX.com/weixin/item/biankuang.png', width: 375, height: 568 }, //商品图 { type: 'image', url: 'https://XXX.com/seafood/public78fffad452d2e158636b.jpg', width: 328, height: 328, top:20, left:22, }, //商品名称 { type: 'text', content: '产品名称产品11111', fontSize: 20, lineHeight: 21, color: '#000000', textAlign: 'left', top: 360, left: 36, width: 290, MaxLineNumber: 2, breakWord: true, bolder: true }, //线条,同样也是用的图 { type: 'image', url: 'https://XXXX.com/weixin/item/xiantiao.png', width: 325, height: 5, top: 443, left:22 }, //商品价格 { type: 'text', content: '¥198.00', fontSize: 20, color: '#E62004', textAlign: 'left', top: 414, left: 36, bolder: true }, //名称 { type: 'text', content: '名称名称', fontSize: 15, lineHeight: 21, color: '#7E7E8B', textAlign: 'left', top: 414, left: 267, width: 70, MaxLineNumber: 1, breakWord: true, }, // 文字, 打不出这个文字带阴影的效果, 所以也用的图 { type: 'image', url: 'https://XXXX.com/weixin/item/wenzi.png', width: 145, height: 75, top: 460, left: 36, }, //二维码 { type: 'image', url: 'https://XXXX.com/Public/Home/images/banner/min_code.jpg', top: 455, left: 260, width: 85, height: 85 }, ] } }) }, eventSave() { wx.saveImageToPhotosAlbum({ filePath: this.data.shareImage, success(res) { wx.showToast({ title: '保存图片成功', icon: 'success', duration: 2000 }) } }) }, eventGetImage(event) { console.log(event) wx.hideLoading() const { tempFilePath, errMsg } = event.detail if (errMsg === 'canvasdrawer:ok') { this.setData({ shareImage: tempFilePath }) } } })
code를 작성하세요.
{ "navigationBarTitleText": "生成海报", "usingComponents": { //在使用页面注册组件(下面有下载地址,如果放的路径不一样,自行就修改为你的路径就行) "canvasdrawer": "/components/canvasdrawer/canvasdrawer" } }
구성 요소 다운로드 주소:
链接:https://pan.baidu.com/s/1i9zq01x58p1MdDMVmnz-_Q&shfl=sharepset 提取码:8hrj
2. 개체 구조
1 데이터 개체의 첫 번째 레이어에는 너비, 높이, 뷰의 세 가지 매개 변수가 필요합니다. 구성의 모든 숫자는 단위가 없습니다. 이는 캔버스가 비례적인 이미지를 그리는 것을 의미합니다. 특정 디스플레이 크기를 결정하려면 반환된 이미지 경로를 이미지 태그에 배치하기만 하면 됩니다.
2. 현재 이미지, 텍스트, 직사각형의 3가지 구성 유형을 그릴 수 있습니다. 구성된 속성은 기본적으로 CSS의 Camel Case 이름을 사용하므로 비교적 이해하기 쉽습니다. 이미지 이미지 주소는 :/images/1.jpeg
top
와 같은 로컬 이미지일 수 있습니다. | left | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | |
높이 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 |
text(text)
없음 밑줄, 줄넘기(밑줄)
|
위 내용은 친구 그룹을 공유하는 WeChat 애플릿은 포스터를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!