MUI 对于原生导航栏的新页面与关闭页面的预加载的底层代码深入运用【MUI】
打开带原生导航栏的新页面
使用父子网络视图或在同一屏幕上显示多个网络视图会消耗大量性能和资源。如果不必要,建议不要在同一屏幕上使用多个 Web 视图。建议使用本机导航栏。它可以加快表单的输入速度,并使用更少的内存。通过 mui 设置 openWindow 的 styles 节点中 titleNView 节点的相关参数来绘制本地导航栏控件。有关详细信息,请参阅 5+webviewStyles 的 titleNView 节点中的 WebviewTitleNViewStyles 详细文档。示例如下:
说明:旧版本的 mui OpenWindowWithTitle 已被废除。
关闭页面'
mui 框架将窗口关闭函数封装在 mui 中。back 方法。具体执行逻辑为:如果当前 Web 视图是预加载的页面,则隐藏当前 Web 视图;否则,关闭当前网络视图;在 mui 框架中,有三个操作触发页面关闭(执行 mui.back 方法):单击包含的控件。mui 动作后台在屏幕上快速向右滑动 Android 手机按下后退按钮:
在 hbuilder 中单击 mheader 生成的代码块将自动生成带有返回导航箭头的标题栏。单击返回箭头关闭当前页面,因为返回箭头包含。梅艳芳动作背课。代码如下:
iOS 平台的本机支持从屏幕右边缘滑出 iOS 平台可以通过 popGesture 参数从屏幕边缘向右滑动 Web 视图。请参阅 5+规格。如果要禁用此函数,可以通过 setStyle 方法将 popGesture 设置为 none。
默认情况下,由 mui 框架封装的页面的右滑动关闭功能不启用。要使用向右滑动关闭功能,需要单击 mui。初始化();在方法中设置 swipeBack 参数,如下所示:
mui 框架默认会监听 Android 手机的 back 按键,然后执行页面关闭逻辑; 若不希望 mui 自动处理 back 按键,可通过如下方式关闭 mui 的 back 按键监听;
除了以上三种操作外,您还可以直接调用 mui。方法执行窗口关闭逻辑;梅。Back()仅处理窗口逻辑。如果要在关闭窗口之前处理其他一些业务逻辑,可以将业务逻辑抽象到特定函数中,然后将其注册为 mui 的 beforeback 参数。init 方法;beforeback 的执行逻辑是:如果 beforeback 参数对应的函数返回 false,则 mui。back()方法将不再执行;否则(返回 true 或无返回值),继续执行 mui。back()方法;示例:从列表中打开详细信息页面,然后从详细信息页面返回以刷新列表界面。此时,您可以注册 beforeback 参数,然后通过自定义事件通知列表页面刷新数据。示例代码如下:
注意:beforeback 的执行返回必须是同步的(阻塞模式)。如果使用异步 js,如原生 UI(非阻塞模式),可能会出现意外结果;例如:通过加号。nativeUI Confirm()弹出一个确认框,用户可能没有选择,但页面已经返回(beforeback 同步完成后,没有返回值,继续执行 mui.back()方法,原生 UI 不会阻塞 js 流程):在这种情况下,如果要自定义业务逻辑,需要复制 mui back 方法;下面是一个自定义示例。在用户每次确认之前,当前页面不会关闭。
判断预加载是否成功
方法 1:通过视觉现象分析
预加载页面将立即打开,并且不会显示等待框;默认情况下,未预加载的页面将首先显示等待框,然后显示新页面;
方法 2:添加日志以分析是否已创建预加载页面
例如,如果 Page A 预加载 Page B,则在 Page A 完全加载后(通过 setTimeout 模拟),打印当前应用程序的所有 Web 视图,查看它是否包含 Page B 的 URL 以供分析。例如:在 A 页面增加如下代码:
版权声明: 本文为 InfoQ 作者【黎燃】的原创文章。
原文链接:【http://xie.infoq.cn/article/cb58f370b27772f4d2c8274dc】。文章转载请联系作者。
评论