收藏
回答

小游戏打开一片空白

小游戏开发版和体验版 从最近使用小程序入口点击进去  图片渲染不出来,一片空白,实际image 的 onload方法是进去了的,只有iphone下才会出现。

扫码进入和分享进入都不会出现此问题。

回答关注问题邀请回答
收藏

3 个回答

  • 小游戏运营专员 - 宏
    小游戏运营专员 - 宏
    2019-06-18

    你好,能否提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-06-18
    有用
    回复 6
    • 刘勋明
      刘勋明
      2019-06-18

      iphone6s  微信版本:7.0.4  系统版本:12.2


      let offScreen = 是一个离屏Canvas

      let image = wx.createImage()

      image.src = src

      image.onload = () => {

          offScreen.ctx.drawImage(image, 0, 0, offScreen.canvas.width, offScreen.canvas.height)

      }



      2019-06-18
      回复
    • 叶轩
      叶轩
      2019-06-18回复刘勋明

      可否提供相对完整的、可运行的代码片段?这段代码看上去离屏一直没有上屏。

      2019-06-18
      回复
    • 刘勋明
      刘勋明
      2019-06-18回复叶轩
      let offScreenCanvas = wx.createCanvas()
      offScreenCanvas.width = window.innerWidth
      offScreenCanvas.height = window.innerHeight
      let image = new Image()
      image.src = "图片路径"
      image.onload = function () {
      offScreenCanvas.getContext("2d").drawImage(image, 0, 0, offScreenCanvas.width, offScreenCanvas.height )
      }

      function render() {
      canvas.getContext("2d").drawImage(offScreenCanvas, 0, 0, window.innerWidth, window.innerHeight)
      requestAnimationFrame(render)
      }

      render()


      是不会立即上屏,但是我有

      requestAnimationFrame

      在不停的渲染,主要是 只有在我结束微信进程后(或者间隔很长时间)  再次通过最近使用小程序那里点击进入就会空白

      其他入口都不会空白,一切正常

      2019-06-18
      回复
    • 刘勋明
      刘勋明
      2019-06-18回复刘勋明

      我用iphone6s和x 都会出现空白,安卓没有遇到 空白(华为mate9 和 p20 pro)

      2019-06-18
      回复
    • 刘勋明
      刘勋明
      2019-06-18回复刘勋明

      具体的代码太长了 ,但逻辑是和上面一样

      2019-06-18
      回复
    查看更多(1)
  • 会痛的石头
    会痛的石头
    2019-08-09
    。。。。。。。。
    2019-08-09
    有用
    回复
  • 刘勋明
    刘勋明
    2019-07-12

    import './js/libs/weapp-adapter'

    import './js/libs/symbol'

    import Main from './js/Main'


    let width = window.innerWidth

    let height = window.innerHeight

    canvas.style.width = width + "px";

    canvas.style.height = height + "px";

    let ratio = wx.getSystemInfoSync().pixelRatio

    canvas.height = height * ratio

    canvas.width = width * ratio

    let ctx = canvas.getContext('2d')

    ctx.scale(ratio, ratio);


    new Main()


    上面的代码直接创建 Main实例就会一片空白


    setTimeout(() => { new Main()},3000)

    //我延迟3000ms就OK,查了好久才发现这个,请问是为什么,而且是微信下拉的最近使用会这样,发现 里面的最近使用小程序 就不会  如何破?


    2019-07-12
    有用
    回复
登录 后发表内容