另外,广告拉取或展示出错的问题非常难以复现,在模拟器、真机上看,广告几乎永远都能正常返回,很难在开发环境查看这类错误。 可是一旦到了线上,拉取不到广告之类的简直是家常便饭,太常见了。况且每次发布新版本,都要走一次广告审核流程,而且时间不短,在此期间都是拉取不到广告的。 也就是说线上经常出问题的场景,开发和测试环境却几乎没有手段复现,这就非常难受了。想问下有没有解决办法,如何在开发环境能复现广告拉取或展示出错的case
激励视频广告API中的ad.show().catch()和onError()含义是否完全相同?https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/rewarded-video-ad.html [图片] 参考链接中的说明,RewardedVideoAd拉取失败时,通过onError()注册的回调函数会执行,同时RewardedVideoAd.show()返回的promise也会是一个rejected Promise,可以catch到一个error对象。 我想问这两个API是否是冗余的,即是否是同一功能的两种实现?二者的含义是完全相同的吗,还是有些微不同? 如果我想写一段拉取失败后执行的逻辑,那么是否二选一在其中某一处(onError回调或show的catch块中)执行即可? 如果在两处都添加同样的处理代码,是不是会造成同一个逻辑执行两次(那样就有问题了) 谢谢
2020-11-20我找到原因了,在微信小游戏开发工具中调试的时候发现了如下错误日志: [图片] 说是count不能大于9. 我把count修改为9之后就可以正常展示了。 不过,这条错误信息只有在开发工具中才会提示,在真机上没有这条提示,所以一开始我搞不懂是为什么出错的。 谢谢官方大大。
推荐组件的GameIcon接口到底该如何调用有两个问题,第一个是关于创建GameIcon的这个接口wx.createGameIcon,参数列表到底什么意思?这个接口的API文档在这里 https://developers.weixin.qq.com/minigame/dev/api/game-portal/wx.createGameIcon.html 其中写到: [图片] 这里有两个地方可以提供styleItem的,到底该用哪个? 我用我能想到的调用方式一一尝试了一遍,在真机上(iOS平台)测试时总是调用失败,错误信息为: gameSDKScriptError {};wx.createGameIcon Error e@https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:36655 value@https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:32222 https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:16387 https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:19197 forEach@[native code] https://res.servicewechat.com/weapp/debug/wx9b3582fe3aff508a/2/:27576:19087 我的调用代码为: [代码]if[代码] [代码](wx.createGameIcon) {[代码][代码] [代码][代码]let styleItemArray = [...Array(10)].map((_, i) => ({[代码][代码] [代码][代码]appNameHidden: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]color: [代码][代码]'white'[代码][代码],[代码][代码] [代码][代码]size: 150,[代码][代码] [代码][代码]borderWidth: 1,[代码][代码] [代码][代码]borderColor: [代码][代码]'white'[代码][代码],[代码][代码] [代码][代码]left: 100 * i,[代码][代码] [代码][代码]top: 100[代码][代码] [代码][代码]}))[代码] [代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].gameIcon = wx.createGameIcon({[代码][代码] [代码][代码]adUnitId: [代码][代码]'PBgAA3Z_WGRX3-3A'[代码][代码],[代码][代码] [代码][代码]count: 10,[代码][代码] [代码][代码]style: styleItemArray[代码][代码] [代码][代码]}, styleItemArray[0])[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](error) {[代码][代码] [代码][代码]console.warn(error)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] 请各位大神帮忙看看!
2019-12-11我也遇到了同样的问题。请问一下,用webgl就没这个问题了吗?
canvas2d 局部重绘,之前绘制的部分黑屏。微信小游戏canvas2d ,绘制完整体后,过一段时间在局部绘制新的图片,局部其他部分全部黑屏。 不想说了,微信小游戏竟然还有这样的问题,每一帧重绘或者一段时间被动事件触发部分绘制就需要全部重绘才行吗!!! 好了,以后只做webgl,想做一次2d竟然这样问题,不想吐槽了!
2019-08-23逛了一圈论坛,发现这是个老问题了:安卓端的canvas2d, 在异步重绘时总是会清屏一次。好几个帖子都在说这个: https://developers.weixin.qq.com/community/develop/doc/0000e0aa440d004763b84aa565bc00?highLine=drawImage, 这个兄弟说先画一个方块,再调用image.onload()函数加载一个image,会导致之前的方块被清除,我也遇到了。 https://developers.weixin.qq.com/community/develop/doc/000a4c8814c1905d41096111a56c00?highLine=canvas 这个兄弟调的是setInterval函数,依然是每次新绘制时会清除之前的图像。 https://developers.weixin.qq.com/community/develop/doc/000e4c56260230e98d482e19956400?highLine=canvas 最早的帖子是3月份的,到现在还不解决??什么效率啊。
安卓端异步方法中调用ctx.fillRect等方法,会清空之前画布直接把代码贴上来说吧: //先绘制一个红色方块 ctx.fillStyle = 'Red' ctx.fillRect(0,0,100,100) //在一个异步函数中再画一个白色方块 setTimeout(() => { ctx.fillStyle = 'White' ctx.fillRect(100, 100,100, 100) }, 1000) 先绘制第一红色的正方形,然后设置一个异步操作,在异步操作中绘制一个白色正方形。如果是在开发者工具或iOS上执行,会正确得到两个正方形(第二个正方形在1秒后出现)。 但在我测试用的两部华为手机上出现的情况都是:一开始有一个红色正方形,1秒之后,屏幕被清屏,白色正方形出现,红色的不见了。 拿setTimeout只是举个例子,实际上我发现无论是在requestAnimation中、图片的image.onload()监听事件中、点击操作的监听时间中还是网络请求的回调函数中,调用ctx.fillRect(或者是fillText, strokeRect等等)都会造成清屏。 也就是说只要是异步操作中绘制图案,前面绘制的内容就会被清屏。 经测试:华为Mate7、Mate10、P20上均存在该问题。开发工具、iOS端正常。 测试手机的信息: [图片]
2019-08-23我也遇到了类似的问题,https://developers.weixin.qq.com/community/minigame/doc/000062d35f8bf885c8091fd6f5b400
真机调试时 fillRect绘制的图形 在 drawImage 后 不显示- 当前 Bug 的表现(可附上截图) 单独 fillRect 会显示绿色方块,添加 drawImage 代码则绿色方块不显示 - 预期表现 预期是显示绿色方块和Image。 模拟器上显示正常。 - 复现路径 单独 fillRect 会显示绿色方块,添加 drawImage 代码则绿色方块不显示 - 提供一个最简复现 Demo 机型:华为P8 MAX 微信版本号:7.04 系统版本号:v1.02.1905151 能复现问题的代码片段: //import './js/libs/weapp-adapter' //import './js/libs/symbol' //import Main from './js/main' //new Main() const canvas = wx.createCanvas() const context = canvas.getContext('2d') // 创建一个 2d context context.fillStyle = '#1aad19' // 矩形颜色 function drawRect(x, y) { context.clearRect(x, y - 1, 100, 100) context.fillRect(x, y, 100, 100) } drawRect(canvas.width / 2 - 50, 0) const image = wx.createImage() const imgX = canvas.width / 2 - 50 let imgY = 500 image.onload = function () { context.drawImage(image, imgX, imgY) } image.src = 'images/hero.png' 补充两个问题(在更新后的代码片段中): 2,触发onTouchStart后,初始化时绘制的飞机图片也消失了 3,后绘制的image2被先绘制的image1遮盖,如果图片有叠加关系,该如何设置呢? 谢谢!
2019-08-23