收藏
回答

onShareAppMessage的图片路径可以是canva生成的路径吗?

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 转发和canvas 客户端 6.7.0 2.2.5
async onShareAppMessage() {
    // console.log(this.listData.firstMessage);
    var _this = this;
    // var zfimg = "";
    const data = await  new Promise(function(resolve) {
      wx.canvasToTempFilePath({
        x: 0,
        y: 0,
        width: _this.rpx * 375,
        height: _this.canvasHeight1,
        destWidth: _this.rpx * 375 * _this.pixelRatio,
        destHeight: _this.canvasHeight1 * _this.pixelRatio,
        canvasId: "myCanvas1",
        success: function(res) {
          console.log(res.tempFilePath);
          // zfimg = res.tempFilePath;
          resolve(res.tempFilePath);
        }
      });
    });
    console.log(data);  //这里可以打印出图片路径
    return {
      title: _this.listData.firstMessage,
      path: "/pages/index/main?id=" + _this.listData.id,
      imageUrl: data,
      success: res => {
        console.log("转发成功", res);
      },
      fail: res => {
        console.log("转发失败", res);
      }
    };
  },



这个转发图片应该展示我用canvas生成的图片



最后一次编辑于  2018-09-03  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • 卢霄霄
    卢霄霄
    2018-09-03

    onShareAppMessage 不能是异步的哦,promise什么的,就当没有过一样。。

    2018-09-03
    赞同 1
    回复 16
    • 卢霄霄
      卢霄霄
      2018-09-03回复何玉硕

      一样的,建议你在onShow 或者onLoad的时候,就把图画好。canvas用绝对定位放到屏幕外面。

      2018-09-03
      回复
    • 何玉硕
      何玉硕
      2018-09-03

      谢谢我测试了好使了

      2018-09-03
      回复
    • 卢霄霄
      卢霄霄
      2018-09-03回复何玉硕

      哦哦

      2018-09-03
      回复
    • haisen
      haisen
      2018-09-04回复何玉硕

      楼主,我也想用canvas画图作为onShareAppMessage的imageUrl,但是为啥我的显示不出来呢?帮看看啥问题吧,非常感谢



      cropImg: function(imgSrc) {//调用这个函数由imgSrc图片生成一个新的图片保存在headShare 全局变量中

          wx.getImageInfo({

              src: imgSrc,

              success: function(ret) {

                  var orWidth = ret.width

                  var orHeight = ret.height

                  ctx.drawImage(imgSrc, 0, orHeight * 1 / 10, orWidth, orHeight * 8 / 10, 0, 0, 500, 400);

                  ctx.draw(false, function() {

                  wx.canvasToTempFilePath({

                      canvasId: 'attendCanvasId',

                      fileType: 'jpg',

                      success: function(resl) {

                          wx.saveFile({//把文件保存到本地

                              tempFilePath: resl.tempFilePath,

                              success: function(res) {

                                      headShare = res.savedFilePath

                                      console.log(headShare)

                                  }

                              })

                          }

                      }) //wx.canvasToTempFilePath end

                  }) //ctx.draw end

              }

          })

      },


      onShareAppMessage: function(res) {

          console.log(headShare)//可以打印出图片本地路径

          return {

              title: xitieInfo.title,

              path: '/pages/showxitie/showxitie',

              imageUrl: headShare,

              success: function(res) {

                  console.log('成功', res)

              },

              fail: function(res) {

                     // 转发失败

                   console.log('失败', res)

              }

          }

      },




      2018-09-04
      回复
    • 何玉硕
      何玉硕
      2018-09-04回复haisen

       wx.canvasToTempFilePath  直接用这个生成的图片地址.不用保存到本地试试

      2018-09-04
      回复
    查看更多(11)