收藏
回答

关于小程序分享功能以及画布的一些疑问!

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 onShareAppMessage 微信iOS客户端 最新 最新

根据API所说,使用分享时,imageUrl路径可以自定义,我现在有三个疑问!


一、现在有一个场景是将一个画布保存成图片,然后返回临时路径,imageUrl为这个临时路径,

因为生成图片的这个画布是不让用户看见的,所以我给画布的盒子设置了hidden=false,结果发现画布生成不了图片,只有画布显示在界面上,才能把画布范围给生成图片,这就导致imageUrl默认是 页面的截屏;


二、今日头条小程序的分享imageUrl做的十分灵活,并且在分享时并没有看到有什么画布显示出来,但是他们的imageUrl是自定义的图片路径,我暂时想可能是用到了画布,但不知是怎么解决上面的那个问题的;


三、这个场景下的画布是在页面开始渲染的时候,画布也要开始画,并且生成图片,但是当画布上存在图片时,这张图片要提前下载,也就是:

wx.downloadFile({

    url: s.data.goods.skuUrl,

    success: function (res) {

        that.setData({

            tempFilePath: res.tempFilePath

        })

    }

})

然后画布的drawImage()的路径要用到tempFilePath,问题来了,当还没有下载完成的时候,画布就开始画了,导致画布上没有这张图片,怎么办?如果用延迟来执行画布的话,在用户体验上就会留下bug(当用户一进入页面就进行分享,这时的画布还不存在),但是今日头条并不存在这个问题,给人的感觉就像是头条提前把imageUrl的图片下载完成了。


有没有大佬给解解惑~提供一些思路,感激不尽!




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

8 个回答

  •  
     
    2018-03-16

    所见略同!

    2018-03-16
    赞同
    回复
  • 火花口感一流的磨牙器
    火花口感一流的磨牙器
    2018-03-16

    把画布挪到屏幕外即可,另外我之前做过一次判断是否画完图的思路是,画图失败就执行循环画图,直到画图为止

    2018-03-16
    赞同
    回复
  • density
    density
    2018-03-14

    你不如直接把今日头条的程序下载来看看

    2018-03-14
    赞同
    回复
  •  
     
    2018-03-13

    不过,谢谢你的这个思路,可以搞一下...虽然很想要今日头条那种效果~

    2018-03-13
    赞同
    回复
  •  
     
    2018-03-13

    非常小的图片,但是不止一张,绘图写在哪里都有点不合适哇..23333....,而且问题一就是个困扰...


    2018-03-13
    赞同
    回复 1
    • 牛
      2018-11-29

      后台画啊

      2018-11-29
      回复
  • 小西瓜®
    小西瓜®
    2018-03-13

    图片有多大?我刚刚也在弄这个,可以出现

    2018-03-13
    赞同
    回复
  •  
     
    2018-03-13

    试过了,不行,就好像res.tempFilePath不能直接用一样....所以我才写成

     that.setData({

                tempFilePath: res.tempFilePath

            })


    2018-03-13
    赞同
    回复
  • 小西瓜®
    小西瓜®
    2018-03-13

    放在wx.downloadFile的success函数内再进行绘画不行吗?

    2018-03-13
    赞同
    回复