收藏
回答

上传图片之后,调用app.js中的onshow,可有方法避免,或者这是BUG?

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug onshow 微信iOS客户端 Android 6.6.7 2.0.0

如题,经测试,上传文件或者是显示图片,只要是全屏显示的,或者是覆盖占用整个屏幕的,当我退出来的时候就自动调用app.js中的onshow函数,这个有什么方法避免,或者这就是个bug?,我在使用上传文件的时候小程序可是没有进入后台的

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

7 个回答

  • 旺旺
    旺旺
    2022-01-11

    可在APP或者页面对象里设置个标记:isUploading,表示是否在上传,默认false,上传添加文件时设为true,上传完成后设为false.

    如果上传模块封装为自定义组件,可在自定义组件attached方法里

    let pages = getCurrentPages()

    pages[pages.length - 1].isUploading=false

    或者

    getApp().isUploading=false

    那么在上传逻辑里:

    pages[pages.length - 1].isUploading=true 或者 getApp().isUploading=true

    上传完成,记得在异步回调里重置为false,

    有了这个标记,即可在onShow里判断:

    if(this.isUploading){

    ...............

    }


    2022-01-11
    有用
    回复
  • 青栀与水
    青栀与水
    2020-09-08

    你有解决吗,刚刚也遇到了这个问题

    2020-09-08
    有用
    回复
  • Kinder ᯤ⁶ᴳ
    Kinder ᯤ⁶ᴳ
    2020-09-07

    碰到一样的问题,只能说辣鸡。。很无语

    2020-09-07
    有用
    回复 1
    • 青栀与水
      青栀与水
      2020-09-08
      你有解决吗,刚刚也遇到了这个问题
      2020-09-08
      回复
  • (^_^)
    (^_^)
    2020-04-11

    得到解决了吗?我现在也遇到这个问题,编辑的时候再次上传图片,老是又调了一次onshow(),里边的编辑数据又刷新了,小程序也太坑了!!!


    2020-04-11
    有用
    回复 1
    • 2020-04-11
      逻辑代码没放到onshow里面了,或者你设置个标志来进行判断
      2020-04-11
      回复
  • ʘᴗʘ😃 😃😃
    ʘᴗʘ😃 😃😃
    2019-04-29

    图片上传和放大,都会进入app.vue的onShow方法,太坑了这个。能有个参数区分出来是上传图片也好啊

    2019-04-29
    有用
    回复
  • 2018-06-27

    是选择完文件返回之后执行app.js的onshow吗?会不会有可能是选择图片的时候因为是调用微信的选择图片功能,所以小程序相当于进入后台运行了?

    2018-06-27
    有用
    回复 1
    • 2018-06-27

      嗯,应该就是向你说的那样,现在我把程序验证代码不放在onshow中的,搞了一个启动页面,放那里面去了

      2018-06-27
      回复
  • 十三
    十三
    2018-06-21

    onShow函数是每一次页面显示都执行的

    2018-06-21
    有用
    回复 1
    • 2018-06-21

      那也应该是页面的onshow执行才对吧,app.js中的onshow为什么会执行,这又不是进入后台的,哪里有隐藏,而且打开文件,显示图片这种的都是在小程序打开的时候运行的,我真是无语了

      2018-06-21
      回复
登录 后发表内容