两个程序员一天一夜也没有解决的微信子域显示好友头像问题

2.0只支持webgl

定时刷新也不显示那就是你主域代码有问题,没有把子域canvas渲染上,把你主域渲染子域的代码贴出来

还是子域的问题,createImage方法里最后加上wx.getSharedCanvas().getContext(‘2d’).drawImage(image, x,y,width,height)

:sweat_smile:用coco那个loader好像有问题,后来用的微信的,if (CC_WECHATGAME) {
console.log(‘微信图片拉取’);
try {
const image = wx.createImage();
image.onload = () => {
try {
const texture = new cc.Texture2D();
texture.initWithElement(image);
texture.handleLoadedTexture();
const spriteFrame = new cc.SpriteFrame(texture);
self.iconData[avatarUrl] = spriteFrame; // 存储图片
this.refreshIcon(node, spriteFrame);
} catch (e) {
cc.log(e);
// node.active = false;
}
};
image.src = avatarUrl;
} catch (e) {
cc.log(e);
// node.active = false;
}
}

avatarUrl这个就是从数据域拿到的头像地址

老哥你用的2.0吗

:sweat_smile:如果还是不行,那就应该不是方法问题了,检查下其他代码

用的1.9.2

我再试一下 不行的话我也用低版本

:sweat_smile:你2.0的啊。。。。2.0好像是有这个问题。

		const img = wx.createImage();
		img.src = ` `;
		img.onload = () => {
			wx.getSharedCanvas().getContext('2d').drawImage(img, x,y,width,height)
		};

是这个意思么老哥 我报错了啊。。。

确定下渲染模式是不是canvas ,微信子域只支持canvas渲染,如果已经升级到2.0,那么用1.x的来打包子域工程,还有就是检查有没有在子域中更新子域展示

微信子域为什么不能用cc.loader.load? 我现在就在用,而且用的好好的

createImage(url)
{
const img = wx.createImage();
img.src = url;
img.onload = () => {
wx.getSharedCanvas().getContext(‘2d’).drawImage(img, x,y,width,height)
};

}

x,y,width,height是图片要放到的位置坐标 和宽高

1赞

解决了 不是代码问题 我卸载2.0 装回了1.9版本的 就好了 希望cocos团队下次升级之前先测试下bug好吧 坑死我了。。。

2赞

2.0版本子域不加载微信头像问题已经在论坛中说了好多次了
楼上有一个贴出来已经修复了,还没打包发出来呢。
多看看发布帖就发现了。

等下个版本出来后不用改代码自己就好了。
我的项目暂时先把头像隐藏了。

官方修复 什么时候发布新版本呀 我也是搞了一天一夜愁死我了 以为是我哪里用不对,幸好看到你也越到这种问题。。。。

http://forum.cocos.com/t/api/64299