muiapp中如何实现每次tab切换都刷新页面

Posted L某人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了muiapp中如何实现每次tab切换都刷新页面相关的知识,希望对你有一定的参考价值。

tab.html:主要控制tab切换的:

<!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" />
        <style type="text/css">
            .tab-icon {
                width: 1.25rem;
                height: 1.25rem;
            }

            .aa {
                display: table-cell;
                overflow: hidden;
                width: 1%;
                height: 50px;
                text-align: center;
                vertical-align: middle;
                white-space: nowrap;
                text-overflow: ellipsis;
                color: #929292;
            }

            .aa .mui-icon {
                top: 3px;
                width: 24px;
                padding-top: 0;
                padding-bottom: 0;
            }

            .aa .mui-tab-label {
                font-size: 11px;
                display: block;
                overflow: hidden;
                text-overflow: ellipsis;
            }
        </style>
    </head>
    <body>
        <nav class="mui-bar mui-bar-tab" id="tabBar">
            <span class="aa mui-active" href="homePage.html">
                <span class="mui-icon"><img class="tab-icon" src="img/diImg/shouyeBlue.png" data-icon="shouye" /></span>
                <span class="mui-tab-label" style="color: #358dfd;">首页</span>
            </span>
            <span class="aa " href="task.html">
                <span class="mui-icon"><img class="tab-icon" src="img/diImg/lsrwGray.png" data-icon="lsrw" /></span>
                <span class="mui-tab-label">任务</span>
            </span>
            <span class="aa" href="wode.html">
                <span class="mui-icon"><img class="tab-icon" src="img/diImg/wodeGray.png" data-icon="wode" /></span>
                <span class="mui-tab-label">我的</span>
            </span>
        </nav>
    </body>
    <script type="text/javascript" charset="utf-8">
        var subpages = [\'homePage.html\', \'task.html\', \'wode.html\'];
        var subpage_style = {
            top: \'0px\',
            bottom: \'50px\',
            scrollIndicator: "none", // 当你的界面的内容足够多的时候,会出现滚动条,这个是隐藏滚动条
        };
        var status = 1;
        // window.addEventListener(\'die\',function(){
        //     status = 0;
        // })
        // window.addEventListener(\'live\',function(){
        //     status = 1;
        // })
        //创建子页面,首个选项卡页面显示,其它均隐藏;
        mui.plusReady(function() {
            // 返回桌面
            var oldback = mui.back;
            mui.back = function() {
                var main = plus.android.runtimeMainActivity();
                main.moveTaskToBack(false);
            };
            //获得当前页面
            var self = plus.webview.currentWebview();
            //循环创建子页面
            for (var i = 0; i < subpages.length; i++) {
                console.log(\'111111111111=======》\',subpages[i] + \'subpage_style===>\'+ subpage_style)
                var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);
                if (i > 0) {
                    sub.hide();
                }
                self.append(sub);
                
            }
            //当前激活选项卡
            var activeTab = subpages[0];

            //选项卡点击事件
            
            mui(\'.mui-bar-tab\').on(\'tap\', \'.aa\', function(e) {
                if(status == 0){
                    return false;
                }
                var targetTab = this.getAttribute(\'href\');
                if (targetTab == activeTab) {
                    return;
                }
                console.log(\'当前显示哪一个tab页面\')
                console.log(targetTab)
                // console.log(\'targetTab\'+targetTab)
                
                //隐藏当前;
                plus.webview.hide(activeTab);
                //显示目标选项卡
                detailPage = plus.webview.getWebviewById(targetTab);
                //触发详情页面的newsId事件
                  mui.fire(detailPage,\'newsId\');
                //打开详情页面          
                  mui.openWindow({
                    id:targetTab
                  });
                // plus.webview.show(targetTab);
                //更改当前活跃的选项卡
                activeTab = targetTab; 
                tabChange(subpages.indexOf(targetTab));
            });

            function tabChange(index) {
                mui(\'.mui-tab-label\').each(function(i, a){
                    if (i === index) {
                        a.style.color = \'#358dfd\'
                    } else {
                        a.style.color = \'#7A7E83\'
                    }
                })
                mui(\'.tab-icon\').each(function(i, a) {
                    if (i === index) {
                        a.src = \'img/diImg/\' + a.dataset.icon + \'Blue.png\'
                    } else {
                        a.src = \'img/diImg/\' + a.dataset.icon + \'Gray.png\'
                    }
                })
            }

        });
    </script>
</html>

homePage.html:首页,因为首页有每次进入刷新的需求

window.addEventListener(\'newsId\',function(event){
             window.location.reload(); //页面更新 
            });

 

具体操作如下图:

 

 

 

 亲测可用,如果你也遇到同样是问题,可以采用以下:详细参考:https://dev.dcloud.net.cn/mui/event/#customevent

 

以上是关于muiapp中如何实现每次tab切换都刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

iOS 列表页面实时刷新解决方案

如何使LayUI的Tab选项卡标签在切换时,自动刷新

layui tab切换不刷新页面,怎么实现?

使用element ui tabs组件切换时踩到的坑

vuetab按钮切换动态数据间隙按钮位置掉低的问题

如何从网址中删除哈希“#”符号?