扫描小程序码分享
canvas能实现这样的吗?
11 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
可以试一下这个API,wx.canvasToTempFilePath(OBJECT, this) 然后在分享配置里 即 Page.onShareAppMessage(Object) 方法指定图片的Url
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
wxml:
js:
控制台输出:(为啥 keyword 是 undefined ?? 还望赐教以下哈)
应该要通过 this.data 来访问 keyword 哦
console.log(this.data.keyword)
刚刚搜素到了,刚觉小程序的 debug 不够强,错误的点、 类型没有提示。 有时候需要 data、this 有时候不需要的,兼容性高点、或错误提示好点就好了。 有没有好用的 小程序debug 插件或者软件 呀?
应该打印的是 that.data.keyword吧?
是的,新手坑呀。还想问一下,个人开发的小程序需要 数据库 的数据,是不是还要自己准备域名和 服务器,然后进行搭建呀? 还是需要别的什么呢?
可以,我现在用的是 https://github.com/jasondu/wxa-plugin-canvas 这个插件,生成分享图和朋友圈海报图很给力
要是绘制多张图呢? 这个images字段怎么用?
一次绘制多张图? 这个images是多张图绘制到一张图上使用的
我绘制的图 上面的文字和图片都是从接口动态获取的,这怎么设置config
现在支持异步生成海报,可以查看https://github.com/jasondu/wxa-plugin-canvas 文档
Eric Huang
"可以试一下这个API,wx.canvasToTempFilePath(OBJECT, this) 然后在分享配置里 即 Page.onShareAppMessage(Object) 方法指定图片的Url".
刚刚试了下好像不行啊
Page({
onReady:
function
(e) {
// 使用 wx.createContext 获取绘图上下文 context
var
context = wx.createCanvasContext(
'canvas'
)
context.setStrokeStyle(
"#00ff00"
context.setLineWidth(5)
context.rect(0, 0, 200, 200)
context.stroke()
"#ff0000"
context.setLineWidth(2)
context.moveTo(160, 100)
context.arc(100, 100, 60, 0, 2 * Math.PI,
true
context.moveTo(140, 100)
context.arc(100, 100, 40, 0, Math.PI,
false
context.moveTo(85, 80)
context.arc(80, 80, 5, 0, 2 * Math.PI,
context.moveTo(125, 80)
context.arc(120, 80, 5, 0, 2 * Math.PI,
context.draw();
wx.canvasToTempFilePath({
x: 100,
y: 200,
width: 50,
height: 50,
destWidth: 100,
destHeight: 100,
canvasId:
,
success:
(res) {
console.log(res.tempFilePath);
wx.updateShareMenu({
title:
'测试'
path:
'pages/follow/follow'
imageUrl: res.tempFilePath
})
}
},
onShareAppMessage() {
return
{
imageUrl:
'https://www.google.com.hk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
});
理论上分享的图应该是canvas里面画的图
但是好像不行,还是初始的onShareAppMessage里面那张google的图
然后打开了wx.canvasToTempFilePath(OBJECT, this) 生成的临时路径(上图右边console的链接),403拒绝了
是不是跟权限有关系? 如果你已经实现了这个功能,麻烦指导下[狗头],蟹蟹大锅~
canvasToTempFilePath应该写在draw()里面面
看一下文档https://developers.weixin.qq.com/miniprogram/dev/api/canvas/temp-file.html
data: {
imgUrl:
''
const self =
this
;
x: 0,
y: 0,
width: 500,
height: 400,
destWidth: 500,
destHeight: 400,
draw() {
console.log(
'ca draw'
);
self.setData({
imgUrl: res.tempFilePath
'click'
const url =
.data.imgUrl;
console.log(url);
imageUrl: url
canvas转图片的临时url是有的,用image标签也能加载出来,分享图片也是用的同一个url,但是就是出不来,就木有办法了咩>_<
应该是图片还没有绘制或者保存好分享事件就发生了
我是这么写的
wechatide://minicode/huCbN4mX7e2m
可以的哈。文章还没写完。这是自己实现的。网上已经有好多插件可以实现了,https://developers.weixin.qq.com/community/develop/doc/00042003eb4d505b92079e94951400
这个插件不是还在审核中么?我要是用在公司项目里,那审核不过我就玩完了
调用个谷歌地址的图片,我就不相信你的过得去
这个东西自己写就好了 该有的api都给提供了 就代码可能会长点。。。不需要找插件 需要的话可以给你我自己做的demo
我做出来了 自己写的 但是比较丑。因为内容比较复杂 每个图片中包括很多在线用户头像,内容,和评论,还有图片。图片大小不固定
能否实现像简书那样将整个页面都保存为一张长图呢
https://github.com/WGinit/mini-poster
但是我画布的高度是不固定的
我做过的都是固定宽高的!
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
可以试一下这个API,wx.canvasToTempFilePath(OBJECT, this) 然后在分享配置里 即 Page.onShareAppMessage(Object) 方法指定图片的Url
wxml:
js:
控制台输出:(为啥 keyword 是 undefined ?? 还望赐教以下哈)
应该要通过 this.data 来访问 keyword 哦
console.log(this.data.keyword)
刚刚搜素到了,刚觉小程序的 debug 不够强,错误的点、 类型没有提示。 有时候需要 data、this 有时候不需要的,兼容性高点、或错误提示好点就好了。 有没有好用的 小程序debug 插件或者软件 呀?
应该打印的是 that.data.keyword吧?
是的,新手坑呀。还想问一下,个人开发的小程序需要 数据库 的数据,是不是还要自己准备域名和 服务器,然后进行搭建呀? 还是需要别的什么呢?
可以,我现在用的是 https://github.com/jasondu/wxa-plugin-canvas 这个插件,生成分享图和朋友圈海报图很给力
要是绘制多张图呢? 这个images字段怎么用?
一次绘制多张图? 这个images是多张图绘制到一张图上使用的
我绘制的图 上面的文字和图片都是从接口动态获取的,这怎么设置config
现在支持异步生成海报,可以查看https://github.com/jasondu/wxa-plugin-canvas 文档
"可以试一下这个API,wx.canvasToTempFilePath(OBJECT, this) 然后在分享配置里 即 Page.onShareAppMessage(Object) 方法指定图片的Url".
刚刚试了下好像不行啊
Page({onReady:function(e) {// 使用 wx.createContext 获取绘图上下文 contextvarcontext = wx.createCanvasContext('canvas')context.setStrokeStyle("#00ff00")context.setLineWidth(5)context.rect(0, 0, 200, 200)context.stroke()context.setStrokeStyle("#ff0000")context.setLineWidth(2)context.moveTo(160, 100)context.arc(100, 100, 60, 0, 2 * Math.PI,true)context.moveTo(140, 100)context.arc(100, 100, 40, 0, Math.PI,false)context.moveTo(85, 80)context.arc(80, 80, 5, 0, 2 * Math.PI,true)context.moveTo(125, 80)context.arc(120, 80, 5, 0, 2 * Math.PI,true)context.stroke()context.draw();wx.canvasToTempFilePath({x: 100,y: 200,width: 50,height: 50,destWidth: 100,destHeight: 100,canvasId:'canvas',success:function(res) {console.log(res.tempFilePath);wx.updateShareMenu({title:'测试',path:'pages/follow/follow',imageUrl: res.tempFilePath})}})},onShareAppMessage() {return{title:'测试',imageUrl:'https://www.google.com.hk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'}}});理论上分享的图应该是canvas里面画的图
但是好像不行,还是初始的onShareAppMessage里面那张google的图
然后打开了wx.canvasToTempFilePath(OBJECT, this) 生成的临时路径(上图右边console的链接),403拒绝了
是不是跟权限有关系? 如果你已经实现了这个功能,麻烦指导下[狗头],蟹蟹大锅~
canvasToTempFilePath应该写在draw()里面面
看一下文档https://developers.weixin.qq.com/miniprogram/dev/api/canvas/temp-file.html
Page({data: {imgUrl:''},onReady:function(e) {// 使用 wx.createContext 获取绘图上下文 contextvarcontext = wx.createCanvasContext('canvas')context.setStrokeStyle("#00ff00")context.setLineWidth(5)context.rect(0, 0, 200, 200)context.stroke()context.setStrokeStyle("#ff0000")context.setLineWidth(2)context.moveTo(160, 100)context.arc(100, 100, 60, 0, 2 * Math.PI,true)context.moveTo(140, 100)context.arc(100, 100, 40, 0, Math.PI,false)context.moveTo(85, 80)context.arc(80, 80, 5, 0, 2 * Math.PI,true)context.moveTo(125, 80)context.arc(120, 80, 5, 0, 2 * Math.PI,true)context.stroke()context.draw();const self =this;wx.canvasToTempFilePath({x: 0,y: 0,width: 500,height: 400,destWidth: 500,destHeight: 400,canvasId:'canvas',draw() {console.log('ca draw');},success:function(res) {console.log(res.tempFilePath);self.setData({imgUrl: res.tempFilePath})}},this);},onShareAppMessage() {console.log('click');const url =this.data.imgUrl;console.log(url);return{title:'测试',imageUrl: url}}});canvas转图片的临时url是有的,用image标签也能加载出来,分享图片也是用的同一个url,但是就是出不来,就木有办法了咩>_<
应该是图片还没有绘制或者保存好分享事件就发生了
我是这么写的
wechatide://minicode/huCbN4mX7e2m
可以的哈。文章还没写完。这是自己实现的。网上已经有好多插件可以实现了,https://developers.weixin.qq.com/community/develop/doc/00042003eb4d505b92079e94951400
这个插件不是还在审核中么?我要是用在公司项目里,那审核不过我就玩完了
调用个谷歌地址的图片,我就不相信你的过得去
这个东西自己写就好了 该有的api都给提供了 就代码可能会长点。。。不需要找插件 需要的话可以给你我自己做的demo
我做出来了 自己写的 但是比较丑。因为内容比较复杂 每个图片中包括很多在线用户头像,内容,和评论,还有图片。图片大小不固定
能否实现像简书那样将整个页面都保存为一张长图呢
https://github.com/WGinit/mini-poster
但是我画布的高度是不固定的
我做过的都是固定宽高的!