1***@qq.com
1***@qq.com
  • 发布:2017-03-25 20:40
  • 更新:2021-06-10 10:54
  • 阅读:2303

android APP启后,双击返回退出偶尔失败。

分类:MUI

我使用的是mui hello案例的中的,tab bar(选项卡)--底部选项卡-webview模式的案例为基础。涉及到三个子webview,里面有ajax请求。项目里面用到了jquery。。

问题1:android APP断网启动后,双击返回退出偶尔失败。
问题2:在低端配置手机中,反复退出和进入app(2-3次浮现),出现白屏卡死现象。

麻烦各位大大,解答下。我都困惑2天了。
下面是关键js文件。

1、index.js

    try{  
        //mui初始化  
        mui.init({  
            keyEventBind: {  
                backbutton: true,  
                menubutton: true  
            }  
        });  
        var subpages = ['page/Component/index-tab-webview-home.html', 'page/Component/index-tab-webview-talent.html', 'page/Component/index-tab-webview-share.html'];  
        var subpage_style = {  
            top: '45px',  
            bottom: '51px'  
        };  
        var aniShow = {};  
         //创建子页面,首个选项卡页面显示,其它均隐藏;  
        mui.plusReady(function() {  
            //初始导航界面  
            //读取本地存储,检查是否为首次启动  
            var showGuide = plus.storage.getItem("lauchFlag");  
            //仅支持竖屏显示  
            plus.screen.lockOrientation("portrait-primary");  
            if(showGuide) {  
                //有值,说明已经显示过了,无需显示;  
                //关闭splash页面;  
                plus.navigator.closeSplashscreen();  
                plus.navigator.setFullscreen(false);  
                //预加载  
                preload();  
            } else {  
                //显示启动导航  
                mui.openWindow({  
                    id: 'guide',  
                    url: 'page/guide.html',  
                    styles: {  
                        popGesture: "none"  
                    },  
                    show: {  
                        aniShow: 'none'  
                    },  
                    waiting: {  
                        autoShow: false  
                    }  
                });  
                //延迟的原因:优先打开启动导航页面,避免资源争夺  
                setTimeout(function() {  
                    //预加载  
                    preload();  
                }, 400);  
            }  
//          mui.getJSON('json/version.json', null, function(data) {  
//              data = JSON.parse(JSON.stringify(data));  
//              var vs = parseInt(data.version);  
//              var upgrade = data.upgrade;  
//              mui.ajax('http://www.quzhuanpan.com/source/getVersion.action',{  
//                  dataType:'json',  
//                  type:'get',  
//                  timeout:3000,  
//                  async: true,   
//                  headers:{'Content-Type':'application/json'},                    
//                  success:function(data){  
//                      if(!!data){  
//                          data = JSON.parse(data);  
//                          var v = data.vno;  
//                          var version = parseInt(v);  
//                          if(vs != version){  
//                              var future_v = "v";  
//                              if(parseInt(version/100) - parseInt(vs/100) >0){  
//                                  mui.confirm('你版本落下太多了,请下载最新版!', '', ['是'], function(e) {  
//                                      if (e.index == 0) {  
//                                          if(plus.os.name=="Android"){  
//                                              plus.runtime.quit();  
//                                          }else{  
//                                              outSet( "此平台不支持直接退出程序,请按Home键切换应用" );  
//                                          }  
//                                      }  
//                                  })  
//                              }else{  
//                                  for(var i=0;i<v.length;i++){  
//                                      future_v = future_v+v.substring(i,i+1)+".";  
//                                  }  
//                                  future_v = future_v.substring(0,future_v.length-1);  
//                                  mui.confirm('发现了最新版'+future_v+',是否更新?', '', ['否', '是'], function(e) {  
//                                      if (e.index == 1) {  
//                                          plus.runtime.openURL(upgrade);  
//                                      }  
//                                  })  
//                              }  
//                          }  
//                      }  
//                  },  
//                  error:function(xhr,type,errorThrown){  
//                        
//                  }  
//              });  
//          });  
        });  

        function preload() {  
            var self = plus.webview.currentWebview();  
            for (var i = 0; i < 3; 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("index-home");  
            //模拟首页点击  
            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');  
            }  
        });  

        //当input框获取焦点,页面转到搜索界面  
        $(".app-search").on("tap",function(){  
            var question = $("#inp-search").val();  
            mui.openWindow({  
                url: 'page/search.html',   
                id:'search',  
                extras:{  
                  "q":question  
                }  
            });  
            $("#inp-search").val("");  
            $("#inp-search").blur();  
        });  
        //搜索按钮事件输入法确定  
        document.querySelector("input").addEventListener('keydown', function(){  
            if(event.keyCode == 13){  
                document.activeElement.blur();//收回软键盘  
                var question = $("#inp-search").val();  
                mui.openWindow({  
                    url: 'page/search.html',   
                    id:'search',  
                    extras:{  
                      "q":question  
                    }  
                });  
                $("#inp-search").val("");  
                $("#inp-search").blur();  
            }  
        }, false);  

        //input焦点离开事件  
        $("body").on("tap",function(){  
            $("#inp-search").blur();  
        })  
        document.getElementById("info").addEventListener('tap',function () {  
            var btnArray = [{title:"版本情况"},{title:"使用帮助"},{title:"关于去转盘"}];  
            plus.nativeUI.actionSheet( {  
                cancel:"取消",  
                buttons:btnArray  
            }, function(e){  
                var index = e.index;  
                switch (index){  
                    case 0:  

                        break;  
                    case 1:  
                        mui.openWindow({  
                            url: 'page/version.html',   
                            id:'useHelp'  
                        });  
                        break;  
                    case 2:  
                        mui.openWindow({  
                            url: 'page/useHelp.html',   
                            id:'useHelp'  
                        });  
                        break;  
                    case 3:  
                        mui.openWindow({  
                            url: 'page/support.html',   
                            id:'support'  
                        });  
                        break;  
                }  
            } );  
        });  
    }catch(e){  
        mui.toast('系统发生了未知错误');  
    }

子webview页面的js,home.js

    try{  
        //热门排行  
        var base_hot = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E5%8C%86%E5%8C%86%E9%82%A3%E5%B9%B4&rsv_pq=bd46659a00012b2b&rsv_t=a26aYoNvPfLZEZwNU5l5OOBSOS%2Fp%2BZDmkREGwiljANTavEkYS03HQsDdit0&rqlang=cn&rsv_enter=1&rsv_sug3=7&rsv_sug1=3&rsv_slog=ipt_change";  
        var base_search_rank = "http://www.iqiyi.com/v_19rro1v2ew.html?vfm=2008_aldbd";  
        var fileList1 = ["射雕英雄传","你的名字","火影忍者:博人传","速度与激情","生化危机","大秦帝国","天龙八部","功夫瑜伽","变形金刚","一个人的武林"];  
        var searchList = ["你的名字","刀剑神域","inventor精简版","寄生兽动漫","四级作文翻译","公务员","血战钢锯岭","初恋50次","海边的曼彻斯特","不落俗套的成功"];  
        mui.plusReady(function() {  

        })  
        mui.init({  
            keyEventBind: {  
                backbutton: false,  
                menubutton: true  
            }  
        });  
        mui.ajax(''+$(".sx").clone()+'',{  
                dataType:'json',//服务器返回json格式数据  
                type:'get',//HTTP请求类型  
                timeout:10000,//超时时间设置为10秒;  
                async: true, //同步操作  
                headers:{'Content-Type':'application/json'},                    
                success:function(data){  
                    if(!!data){  
                        data = JSON.parse(data);  
                        var fileList = data.fileList;  
                        var html = "";  
                        if(fileList.length == 0){  
                            fileList = fileList1;  
                        }  
                        appendHot(fileList,$(".hot-list"));  
                    }  
                    $(".loading").hide();  
                },  
                error:function(xhr,type,errorThrown){  
                    appendHot(fileList1,$(".hot-list"));  
                    $(".loading").hide();  
                }  
            });  

            mui.ajax(''+$(".ssx").clone()+'',{  
                dataType:'json',//服务器返回json格式数据  
                type:'get',//HTTP请求类型  
                timeout:10000,//超时时间设置为10秒;  
                async: true, //同步操作  
                headers:{'Content-Type':'application/json'},                    
                success:function(data){  
                    if(!!data){  
                        data = JSON.parse(data);  
                        var searchRank = data.searchRank;  
                        var html = "";  
                        if(searchRank.length > 0){  
                            appendSearch(searchRank,$(".hot-search-rank"));  
                        }else{  
                            appendHot(searchList,$(".hot-search-rank"));  
                        }  
                        $(".loading").hide();  
                    }  
                },  
                error:function(xhr,type,errorThrown){  
                    appendHot(searchList,$(".hot-search-rank"));  
                    $(".loading").hide();  
                }  
            });  

        function appendHot(list,$obj){  
            var html = "";  
            for(var i=0; i<list.length; i++){  
                html += "<li class='mui-table-view-cell mui-media mui-col-xs-6 mui-col-sm-6'>"+  
                            "<p class='s'>"+list[i]+"</p>"+  
                        "</li>";  
            }  
            $obj.append(html);  
        }  
        function appendSearch(list,$obj){  
            var html = "";  
            for(var i=0; i<list.length; i++){  
                html += "<li class='mui-table-view-cell mui-media mui-col-xs-6 mui-col-sm-6'>"+  
                            "<p class='s'>"+list[i].keyword+"</p>"+  
                        "</li>";  
            }  
            $obj.append(html);  
        }  

        //热门资源搜索  
        $(".hot-search-rank").on("tap",".s",function(){  
            var question = $(this).text();  
            mui.openWindow({  
                url: '../../page/search.html',   
                id:'search',  
                extras:{  
                  "q":question  
                }  
            });  
        });  
        $(".hot-list").on("tap",".s",function(){  
            var question = $(this).text();  
            mui.openWindow({  
                url: '../../page/search.html',   
                id:'search',  
                extras:{  
                  "q":question  
                }  
            });  
        });  

        mui.ready(function(){  
            document.getElementById('film').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/film.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            document.getElementById('music').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/music.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            document.getElementById('ebook').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/ebook.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            document.getElementById('software').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/software.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            document.getElementById('bt').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/bt.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            document.getElementById('other').addEventListener('tap', function() {  
              mui.openWindow({  
                url: "../../page/other.html" ,   
                show:{  
                  autoShow:false  
                }  
              });  
            });  
            //页面滚动  
            mui('.mui-scroll-wrapper').scroll({  
                scrollY: true, //是否竖向滚动  
                 scrollX: false, //是否横向滚动  
                 startX: 0, //初始化时滚动至x  
                 startY: 0, //初始化时滚动至y  
                 indicators: false, //是否显示滚动条  
                 deceleration:0.0006, //阻尼系数,系数越小滑动越灵敏  
                 bounce: false //是否启用回弹  
            });  

            //页面启动轮播  
            var gallery = mui('.mui-slider');  
            gallery.slider({  
              interval:2000//自动轮播周期,若为0则不自动播放,默认为0;  
            });  
        })  
    }catch(e){  
        mui.toast('系统发生了未知错误');  
    }  
2017-03-25 20:40 负责人:无 分享
已邀请:
状态的状zhuang

状态的状zhuang

奇怪了,我也遇到了这样的问题,不知道是因为近期更新了,还是使用了 uni.getversion

状态的状zhuang

状态的状zhuang

奇怪了,我也遇到了这样的问题,不知道是因为近期更新了,还是使用了 uni.getversion

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