微信小游戏分享图片问题

我在小游戏分享调用
wx.shareAppMessage({
title: “test title”,
imageUrl: “resources/ground.png”,
query: “test=1&test2=2&test3=3”,
success: function (res) {
console.log(“shareAppMessage success:”, res);
},
fail: function (res) {
console.log(“shareAppMessage fail:”, res);
},
});
可以分享成功,但是图片显示不出来,显示成白色的,,query参数在中拿到query也是空的{}。
wx.onShow(function (res) {
console.log(“onshow:”, res);
});
请问在人遇到过吗?是格式不对吗?

2赞

分享的图片确定路径和名称没问题,下载的资源或者开启了md5,可以用网络图片测试一下

网络图片是可以的,但是本地包里的图片不可以吗?还有参数的问题,一直都是空的,参数格式是按微信文档的。

你用的是creator还是2dx,看看构建后的素材名字有没变化,参数应该是正确的,onshow是否有调用

cocoscreator1.9.1版本的,如果打开了md5,是有变化的。但是不打开是没有变化的,还是调用不了。onshow是有调用的,就是onshow里的参数返回的query参数为空的对象{}。

觉得是你的图片路径有问题,试下imageUrl: “res/raw-assets/resources/ground.png”,先关闭md5试下

嗯,确实是路径的问题,感谢啊,还有参数的问题也解决了,要点发出来的小程序才有参数返回。

图片存到网络吧

最终是用什么路径解决的?能分享下吗 我试了很多都不行

我试过放resources下面也还是不行

这是我的实现方案:

wx.shareAppMessage({
            title: '???????????????',
            query: `roomId=${roomId}`,
            imageUrl: cc.url.raw('resources/pic/sp_share.png'),
            success: () => {
                this.target.onShareSuccess();
            },
            fail: () => {
                this.target.onShareFail();
            }
        });

然后share的图片路径build-templates\wechatgame\res\raw-assets\resources\pic\sp_share.png
这么做的目的有两点:

  1. 放到resource目录下,可以通过路径访问到
  2. 放到build-templates里面是为了避免对资源做md5的时候把图片名字给改了,导致获取不到

关于build-templates出门左转—>>>http://docs.cocos.com/creator/manual/zh/publish/custom-project-build-template.html?h=build-templa

1赞

我图片是放在
build-templates\wechatgame\wx-assets\share.png

代码里面直接用 wx-assets\share.png

居然不显示:joy:

刚好遇见这个坑 要自定义发布模板 见http://docs.cocos.com/creator/manual/zh/publish/custom-project-build-template.html 里面按照平台路径划分子目录,然后里面的所有文件在构建结束后都会自动按照对应的目录结构复制到构建出的工程里。把图片存到自定义发布的模板中,然后构建时会自动生成到微信中
wx.shareAppMessage({
title: “不怕,就来PK!”,
imageUrl: ‘res/raw-assets/resources/pic/shareImg.jpg’,
success(res){
console.log(“转发成功!!!”)
},
fail(res){
console.log(“转发失败!!!”)
}
})
imageUrl的路径到wechatgame/res/raw-assets/resources/pic 里面

:sweat_smile:路径可以转的这个路径就可以用了

4赞

mark

为什呢我照着你的方法不把文件res放到服务器上可以,让后把res放到服务器上就获取不到了啊

然后你怎么解决的?

我的使用方式可以,本地和远程文件一样使用

getURL方法的实现,本地文件不存在时使用远程文件

1赞

看回复:joy: