APP中H5页面返回

内嵌到APP里面的H5页面,当点击APP上的返回按钮或者手机上的返回按钮时,如果H5页面不是页面的跳转,而是仅仅的Tab切换时,就会出现直接跳出页面的情况。

解决的办法:

function isVisible(obj){
    var ret = true;
    if(obj.style.display === "none"){
        ret = false;
    }
    return ret;
}

function showPage(){
    var p1 = $(".pagesa");
    var p2 = $(".find_province_wrap");
    var p3 = $(".find_city_wrap");
    if(isVisible(p1[0])){
        $(".pagesa").hide();
        p2.show();
        window.pageIndex = 'province';//设置页面index,为后面回退做标识
    }else if(isVisible(p2[0])){
        $(".find_province_wrap").hide();
        p3.show();
        window.pageIndex = 'city';//设置页面index,为后面回退做标识
    }else if(isVisible(p3[0])){
        $(".find_city_wrap").hide();
        p1.show();
        window.pageIndex = 'home';//设置页面index,为后面回退做标识
    }
}

function getOSType() {
    if (/(Android)/i.test(navigator.userAgent)) {
        return 0;
    } else if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
        return 1;
    } else {
        return 2;
    }
        }
function backButtonClicked(){
    var pageIndex = window.pageIndex;
    var goBack = true;//true代表页面不回退。false代表页面回退。
    if(pageIndex === "city"){
        //find_city_wrap城市页、find_province_wrap省份页、pagesa首页,页面的切换
        $(".pagesa").hide();
        $(".find_city_wrap").hide();
        $(".find_province_wrap").show();
        $(".active").removeClass("active");
        window.pageIndex = 'province';
    }else if (pageIndex === 'province') {
        $(".find_city_wrap").hide();
        $(".find_province_wrap").hide();
        $(".pagesa").show();
        window.pageIndex = 'home';
    }else{
        goBack = false;
    }
    //window.event.returnValue = false;

    var ostype = getOSType();
    if (ostype == 1) {//ios
        return goBack;
    } else{//android
        return window.daojia.js_back_result(goBack);
    }
}

 

posted @ 2016-06-30 19:38  FEHammer  阅读(12152)  评论(0)    收藏  举报