wxml-to-canvas.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const {wxml, style} = require('./demo.js')
  2. Page({
  3. onShareAppMessage() {
  4. return {
  5. title: 'wxml-to-canvas',
  6. path: 'packageExtend/pages/extend/wxml-to-canvas/wxml-to-canvas'
  7. }
  8. },
  9. data: {
  10. src: '',
  11. wxmlTemplate: wxml('your_img_url'),
  12. showCanvas: false,
  13. },
  14. onLoad() {
  15. this.widget = this.selectComponent('.widget')
  16. wx.cloud.getTempFileURL({
  17. fileList: ['cloud://release-b86096.7265-release-b86096-1258211818/开放社区.jpeg'],
  18. success: res => {
  19. const url = res.fileList[0].tempFileURL
  20. console.log(url)
  21. this.url = url
  22. },
  23. fail: console.error
  24. })
  25. },
  26. renderToCanvas() {
  27. console.log(wxml(this.url))
  28. const p1 = this.widget.renderToCanvas({wxml: wxml(this.url), style})
  29. p1.then((re) => {
  30. console.log('container', re.layoutBox)
  31. this.data.showCanvas = true
  32. this.container = re
  33. return re
  34. }).catch(() => {})
  35. },
  36. extraImage() {
  37. console.log(this.widget, this.widget.canvasToTempFilePath)
  38. if (!this.data.showCanvas) {
  39. wx.showModal({
  40. title: '提示',
  41. content: '请先渲染到canvas'
  42. })
  43. return
  44. }
  45. const p2 = this.widget.canvasToTempFilePath()
  46. p2.then(res => {
  47. this.setData({
  48. src: res.tempFilePath,
  49. width: this.container.layoutBox.width,
  50. height: this.container.layoutBox.height
  51. })
  52. return res
  53. }).catch(() => {})
  54. }
  55. })