整理 | MUI中使用标题栏进度条和正在加载控件

在APP项目开发中,我们都会使用一些提示性的控件来给用户优质的体验。使用MUI开发APP时,其页面使用H5来构建,这时我们需要在页面初始化的时候使用各类提示性组件(如弹窗、正在加载等)给用户友好的提示,否则会因为各类原因(如网络、设备等影响)会影响用户的体验,或者交互。对于这种情况,我所使用的是,在跳转页面时,一种方式使用绘制原生导航控件时设置窗口标题栏控件显示进度参数;另一种使用H5+ API的nativeUI的showWaiting和closeWaiting方法,在plusReady中使用showWaiting,在页面渲染完成后使用closeWaiting。这两种方式都是基于mui.openWindow之后的。

标题栏进度条

我们可以通过在mui.openWindow的styles节点中设置titleNView节点的相关参数。

            url: openWindowUrl,//打开窗口页面
            id: openWindowId,
            styles: {
                titleNView: {//窗口标题栏控件
                    titleText: "标题栏名称",//标题栏文字
                    titleColor: "#FF0000",//字体颜色
                    titleSize: "18px",//字体大小
                    progress: {//标题栏控件的进度条样式
                        color: "#00FF00",//进度条颜色
                        height: "2px",//进度条高度
                    }
                }
            }
        })

正在加载提示控件

使用加载提示控件,相对来说,更加明确,当加载提示控件显示时,说明数据正在渲染中。

            plus.nativeUI.showWaiting("正在加载...");
            //页面渲染数据方法
            var list = [{"id": 1, "title": "第一条新闻"}, {"id": 2, "title": "第二条新闻"}];
            var data = {
                news: list
            };
            var html = template('newsl', data);
            document.getElementById('newsList').innerHTML = html;
            plus.nativeUI.closeWaiting();
        })

两种方式各有特点,可以根据实际情况来使用。

示例

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <script src="js/mui.min.js"></script>
        <link href="css/mui.min.css" rel="stylesheet" />
        <script type="text/javascript" charset="utf-8">
            mui.init();
            document.getElementById('btn').addEventListener('tap', function() {
                mui.openWindow({
                    url: "home.html", //打开窗口页面
                    id: "home",
                    styles: {
                        titleNView: { //窗口标题栏控件
                            titleText: "新闻详情页", //标题栏文字
                            titleColor: "#FF0000", //字体颜色
                            titleSize: "18px", //字体大小
                            progress: { //标题栏控件的进度条样式
                                color: "#00FF00", //进度条颜色
                                height: "2px", //进度条高度
                            }
                        }
                    }
                })
            })
        </script>
    </head>
    <body>
        <header class="mui-bar mui-bar-nav">
            <h1 class="mui-title">首页</h1>
        </header>
        <div class="mui-content">
            <button id="btn" type="button" class="mui-btn mui-btn-blue mui-btn-outlined">跳转页面</button>
        </div>
    </body>
</html>

//home.html
<!doctype html>
<html>

    <head>
        <meta charset="utf-8">
        <title></title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <link href="css/mui.css" rel="stylesheet" />
    </head>

    <body>
        <div class="mui-content">
            <ul class="mui-table-view" id="newsList">
                <script id="newsl">
                    {{each news}}
                    <li class="mui-table-view-cell">
                        <a class="mui-navigate-right">
                            {{value.title}}
                        </a>
                    </li>
                    {{/each}}
                </script>
            </ul>
        </div>
        <script src="js/mui.js"></script>
        <script src="js/template-web.js"></script>
        <script type="text/javascript">
            mui.init();
            mui.plusReady(function() {
                plus.nativeUI.showWaiting("正在加载...");
                //页面渲染数据方法
                var list = [{
                    "id": 1,
                    "title": "第一条新闻"
                }, {
                    "id": 2,
                    "title": "第二条新闻"
                }];
                var data = {
                    news: list
                };
                var html = template('newsl', data);
                document.getElementById('newsList').innerHTML = html;
                plus.nativeUI.closeWaiting();
            })
        </script>
    </body>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在APP开发中,若要使用H5+ API,必须等 plusready 事件发生之后才能正常使用,MUI框架将其封装成...
    CodexBai阅读 10,266评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,621评论 1 32
  • 安今天进门的第一句话,不是今天吃什么,而是“物理老师竟然也要开补习班,还一周两次!她竟然说既然邹老师能开,她也能开...
    小红和小火阅读 299评论 0 0
  • 采茶叶时遇到各种虫虫很自然,本来嘛,那是人家的地盘。前两天,采茶当中,我左手(我是右手扶枝条左手采摘)猛然向空中甩...
    安徽的黄真真阅读 286评论 0 0
  • 这个冬天,有些地方开始下雪了。 我想象着, 小雪初到人间时的轻盈, 或是大雪到来时的触不及防的意外惊喜。 然后,我...
    zhuliuer阅读 366评论 0 1

友情链接更多精彩内容