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

我们加班试了好久 在子域中始终显示不了头像,




以上的步骤我在主域里也实验了,完全正常,放到子域里就会出现sprite一运行就消失的情况

原生的写法,在cocos论坛问,你要是用cc.loader.load({url:“xxx”,type:“jpg”,()=>{}}) 还可能知道一些,原生的不知道

1赞

先睡会儿吧

官方应该已经修复了

https://github.com/cocos-creator/engine/pull/3051

渲染内容每帧会清掉,试试

setInterval( ()=>{
self.createImage( , )
}, 100)

或者在主域里定时派发微信子域消息来渲染

kepa

渲染模式选的canvas吗

我用的2.0 选微信游戏 没有选canvas webgl的选项了

我刚把他们改的代码加进去了 运行还是一样。。。

微信子域不能用你写的那个 会出错的

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