枫桥居APP
枫桥居APP
  • 发布:2015-06-23 21:14
  • 更新:2015-06-27 02:48
  • 阅读:3377

正在加载框的问题,加载框能自动关闭吗

分类:MUI

问题:plus.nativeUI.showWaiting();加载框可以设置超时时间吗?或者是加载框可以绑定事件吗?

说说我遇到的问题:
我是在ios下(没有返回按钮),打开一个openWindow,设置不自动显示webview,显示加载框。

        mui.openWindow({  
            url: url,  
            id: 'page1',  
            show: {  
                autoShow: false  
            },  
            waiting:{  
                autoShow:true  
            }  
        });

然后目标页面:

selfWebview.show();  
plus.nativeUI.closeWaiting();

网速好的话没问题,效果也很流畅。
但在3G或者2G情况下,问题就糟糕了,一直显示加载中(也许是网络卡住了),这个加载框一直不消失。前面说了是ios没有返回按钮,只能强制退出app。所以我就找有没有设置加载框自动超时,比如10秒自动消失;或者双击加载框自动取消。
备注:我这是打开一个新的url,不是ajax请求。如果是ajax我可以设置timeout然后关闭加载框。

2015-06-23 21:14 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

打开一个新的url也可以做timeout的处理。
打开的时候,setTimeout然后closeWaiting
新页面如果打开了,可以选择执行前一个页面的js代码,clearTimeout。

  • 枫桥居APP (作者)

    谢谢指点,如果能集成到plus.nativeUI.showWaiting()就方便多了,不需要自己每个页面都去实现

    2015-06-23 21:48

  • DCloud_UNI_FXY

    回复 枫桥居APP:目前暂未提供。showWaiting可以配置modal:false,该waiting允许操作底下的内容。

    2015-06-23 21:51

枫桥居APP

枫桥居APP (作者)

@DCloud_MUI_FXY:showWaiting可以配置modal:false 这个我知道。

还有个问题就是openWindow 自带的切换页面时间太长了(比用我的方法要多几秒钟)。不知道openWindow运行机制是什么。我初步怀疑是要等目标页面完全加载才打开。这样如果目标页面有个很慢的链接(比如js,css或者大图片),那么显示时间会非常慢。(如果我理解有误欢迎指正,谢谢。)
但我如果在目标页面用下面代码:

selfWebview.show();  
plus.nativeUI.closeWaiting();

这样只要加载完html,只要运行到这个位置,页面立马就会展示。然后继续加载css,js和图片等。

  • DCloud_UNI_FXY

    openWindow默认是等新页面loaded之后才显示

    另外showWaiting还可以配置padlock:true。点击waiting框时,关闭waiting

    2015-06-23 22:09

  • 枫桥居APP (作者)

    回复 DCloud_UNI_FXY:非常感谢啊,我就需要padlock:true

    2015-06-23 22:21

tt0668

tt0668

如果实现枫兄的想法,那就可以撤掉预加载了

  • 枫桥居APP (作者)

    不爱用预加载,安卓系统很好内存。我的APP创建了20多个webview,正在想办法减少数量。虽然没有都显示出来,但肯定会影响性能

    2015-06-28 10:51

  • Geeker

    高端机 以后是越来越多了 慢慢可以忽略这个浩内存问题了 大内存4G 随便吃 ~_~

    2015-06-29 10:32

该问题目前已经被锁定, 无法添加新回复