大大们幸苦了
点个赞!
还好你们没抛弃我们啊,太TN的坑了
辛苦了,年后发版本
哎呀,才注意到这个问题,我说这两天的活跃怎么掉了一千多么,也不知道现在改还能不能来得及过审!!!
按照上面提供的方式修复之后,一些老旧机型升级到微信7.0.3后截图分享直接闪退,一般第一次成功,多试几次之后就闪退了。没升级到7.0.3是没有问题的,打开性能监控没有发现异常。文字越多的地方越容易触发截图闪退。引擎版本是2.1.0。@panda。截图代码
capture() {
//截图初始化
let texture = new cc.RenderTexture();
let gl = cc.game._renderContext;
// this.shareCard 是要截图的节点
texture.initWithSize(this.shareCard.width, this.shareCard.height, gl.STENCIL_INDEX8);
this.cam.targetTexture = texture;
let width = texture.width;
let height = texture.height;
if (!this.ifCard) {
this.ifCard = true;
this.shareActionStart();
}
if (cc.sys.platform == cc.sys.WECHAT_GAME && this.nowShare) {
this.shareCard.active = true;
this.nowShare = false;
this.cam.render();
let shareData = {
width: width,
height: height,
Pixels: texture.readPixels(),
title: "连胜挑战分享"
}
// 实际截图分享,该方法的实现在下面
app.recordShareController.cameraShare(shareData, () => {
console.warn(`am`, this.cam.containsNode(cc.find(`Canvas`)))
this.scheduleOnce(() => {
this.shareCard.active = false;
this.nowShare = true;
},1)
app.shareController.shareGameMission(core.constants.hd.missionShareType.challengeShare)
});
}
}
cameraShare(shareData, cb){
let config = app.cfg.get("config_other")
let wechatShare = config.shareConfig;
let canvas = wx.createCanvas();
let ctx = canvas.getContext('2d');
canvas.width = cc.view.getCanvasSize().width;
canvas.height = cc.view.getCanvasSize().height;
let rowBytes = shareData.width * 4;
for (let row = 0; row < shareData.height; row++) {
let srow = shareData.height - 1 - row;
let imageData = ctx.createImageData(shareData.width, 1);
let start = srow*shareData.width*4;
for (let i = 0; i < rowBytes; i++) {
imageData.data[i] = shareData.Pixels[start+i];
}
ctx.putImageData(imageData, 0, row);
}
canvas.toTempFilePath({
x: 0,
y: 0,
width: shareData.width,
height: shareData.height,
destWidth: 500,
destHeight: 400,
success:(res) => {
core.dispatch("rank.ui.resetPosition");
console.warn("分享截图路径:", res);
//self.wxShare();
let msg = {
title: wechatShare.shareInfo.title,
imageUrl: res.tempFilePath
}
let newSpreader = app.utilController.getNewSpreader();
if (newSpreader && newSpreader !== "") {
msg.query = `action=share&newSpreader=${newSpreader}`;
}
wx.shareAppMessage(msg);
},
fail(res){
console.error("截图失败原因:", res, res.errMsg);
core.dispatch("rank.ui.resetPosition");
},
complete(){
console.warn("cameraShare done1", cc.winSize.width, cc.winSize.height)
cb()
console.warn("cameraShare done2", cc.winSize.width, cc.winSize.height)
}
})
}
1.9版本只需要按上面适配下,画面模糊的问题。卡顿的问题,微信已经通过热更解决了
卡顿什么时候解决了? 线上还是卡的啊
你是哪个版本啊?
请问一下,问题4现在有没有持续在跟微信沟通啊。
微信那边论坛里看了下,给的回复都是看这边的帖子的解决方案。
然而这边给的回复又是等微信处理。
现在重度点的游戏上微信卡的没有用户体验啊。
日活每天都再掉,卡顿反馈依然有。相当难受。这个帖子能同步下官方跟进的最新进展吗
cocos 这态度感人啊,远好于egret和laya,有这样的团队,不管解没解决问题都让开发者心里一暖
1赞
mark
我们是1.9.2版本,也是掉帧严重,尤其是播放动画的时候。请问有别的解决方案吗?(按2.0.7的方案,1.9.2版本/libs/engine/ 文件夹里没有DeviceMotionEvent.js文件)
我们一直在和微信保持紧密沟通,我们在尽我们所能进行优化。不过由于在微信上我们的引擎只能以 JS 的形态运行,很多底层(C++)部分不受控制,目前优化起来难度比较大,我们正在反复尝试。
1赞
就cocos团队解决问题的态度,比别的好太多了,顶!
膜拜~~~
先隐藏子域就好了,子域问题我们这边优化不了,不过微信最近也在完善当中,可能就快要官方修复了!