小程序分享自定义图片问题,使用canvas生成,右上角分享第一次无法替换问题

未命名
  • 7

最近有个需求是要分享出去的商品图片上带上价格和销量,刚开始很顺利,使用canvas生成完图片,然后替换,但是轮到右上角点击三个点分享出去的时候有个问题

    onShareAppMessage(res) {
         if (res.from === 'button') {// 来自页面内分享按钮
             if(res.target.id == 0){
                 if(this.ifGetImg){
                     return {
                       title:this.goods.name,
                       imageUrl:this.shareImgUrl,
                       path: '/packageA/pages/goods/goods?id='+this.goods.id+'&promoCode='+promoCode+'&warehouseId='+warehouseId
                     }
                 }
             }else if(res.target.id == 1){
                 this.shareGoods(2)
             }else if(res.target.id == 2){
                 return {
                   title:this.goods.name,
                   imageUrl:this.shareImgUrl,
                   path: '/packageA/pages/goods/goods?id='+this.goods.id+'&promoCode='+promoCode+'&warehouseId='+warehouseId
                 }
             }
           }else if(res.from === 'menu'){
               return {
                 title:this.goods.name,
                 imageUrl:this.shareImgUrl,
                 path: '/packageA/pages/goods/goods?id='+this.goods.id+'&promoCode='+promoCode+'&warehouseId='+warehouseId+'&userType=user'
               }
           }
               
         },

这里是方法,由于图片还未生成好,所以没有替换掉

第二次点击后就可以了

现在的方案是进到页面数据加载完毕后,调用方法生成图片,不管有没有分享都会生成,虽然实现了需求,但是总是感觉不妥,也看过别人的小程序,暂时还不知道他们的实现方式,所以,有没有大佬来解惑,这种实现的思路是什么,还有什么可优化的点

回复
阅读 281
1 个回答

onShareAppMessage 支持 promise 参数,如果该参数存在,则其它的参数将会以其resolve 结果为准,如果三秒内不 resolve,分享会使用上面传入的默认参数。

就是说你可以异步等待图片生成好,完成分享,3秒足够了

你知道吗?

宣传栏