splus
splus
  • 发布:2017-11-03 17:34
  • 更新:2017-11-03 17:34
  • 阅读:1655

安卓环境下,多次切换webview后物理返回键无效该如何解决?

分类:HTML5+

做的一个点击下方菜单可切换页面,多次快速切换页面后安卓物理返回键无反应,所用代码和demo里的基本一致,代码如下:
<!DOCTYPE html>
<html>

<head>  
    <meta charset="utf-8">  
    <title>工程项目管理</title>  
    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">  
    <meta name="apple-mobile-web-app-capable" content="yes">  
    <meta name="apple-mobile-web-app-status-bar-style" content="black">  

    <link rel="stylesheet" href="css/mui.min.css">  
    <link rel="stylesheet" href="css/common.css">  
</head>  

<body>  
    <header class="mui-bar mui-bar-nav">  
        <h1 id="title" class="mui-title">进度查询</h1>  
    </header>  
    <nav class="mui-bar mui-bar-tab">  
        <a id="defaultTab" class="mui-tab-item mui-active" href="tab-webview-subpage-progress.html">  
            <span class="mui-icon mui-icon-settings"></span>  
            <span class="mui-tab-label">进度查询</span>  
        </a>  
        <a class="mui-tab-item" href="tab-webview-subpage-setup.html">  
            <span class="mui-icon mui-icon-compose"></span>  
            <span class="mui-tab-label">项目创建</span>  
        </a>  
        <a class="mui-tab-item" href="tab-webview-subpage-setting.html">  
            <span class="mui-icon mui-icon-gear"></span>  
            <span class="mui-tab-label">设置</span>  
        </a>  
    </nav>  
    <script src="js/mui.min.js"></script>  
    <script type="text/javascript" charset="utf-8">  
        //mui初始化  
        mui.init();  

        var subpages = ['tab-webview-subpage-progress.html', 'tab-webview-subpage-setup.html', 'tab-webview-subpage-setting.html'];  
        var subpage_style = {  
            top: '45px',  
            bottom: '51px'  
        };  

        var aniShow = {};  

        //创建子页面,首个选项卡页面显示,其它均隐藏;  
        mui.plusReady(function() {  
            var self = plus.webview.currentWebview();  
            for(var i = 0; i < 4; i++) {  
                var temp = {};  
                var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);  
                if(i > 0) {  
                    sub.hide();  
                } else {  
                    temp[subpages[i]] = "true";  
                    mui.extend(aniShow, temp);  
                }  
                self.append(sub);  
            }  
        });  
        //当前激活选项  
        var activeTab = subpages[0];  
        var title = document.getElementById("title");  
        //选项卡点击事件  
        mui('.mui-bar-tab').on('tap', 'a', function(e) {  
            var targetTab = this.getAttribute('href');  
            if(targetTab == activeTab) {  
                return;  
            }  
            //更换标题  
            title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;  
            //显示目标选项卡  
            //若为iOS平台或非首次显示,则直接显示  
            if(mui.os.ios || aniShow[targetTab]) {  
                plus.webview.show(targetTab);  
            } else {  
                //否则,使用fade-in动画,且保存变量  
                var temp = {};  
                temp[targetTab] = "true";  
                mui.extend(aniShow, temp);  
                plus.webview.show(targetTab, "fade-in", 300);  
            }  
            //隐藏当前;  
            plus.webview.hide(activeTab);  
            //更改当前活跃的选项卡  
            activeTab = targetTab;  
        });  
        //自定义事件,模拟点击“首页选项卡”  
        document.addEventListener('gohome', function() {  
            var defaultTab = document.getElementById("defaultTab");  
            //模拟首页点击  
            mui.trigger(defaultTab, 'tap');  
            //切换选项卡高亮  
            var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");  
            if(defaultTab !== current) {  
                current.classList.remove('mui-active');  
                defaultTab.classList.add('mui-active');  
            }  
        });  
    </script>  
</body>  

</html>

2017-11-03 17:34 负责人:无 分享
已邀请:

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