3***@qq.com
3***@qq.com
  • 发布:2018-04-26 09:28
  • 更新:2019-03-07 15:29
  • 阅读:11288

登录成功之后如何跳转到自己指定的页面?

分类:MUI

function(data){
if(data.status == 1){
plus.storage.setItem('phone',data.phone+'');
plus.storage.setItem('password',data.password+'');
mui.toast('登录成功');
setTimeout(function(){
var _self = plus.webview.currentWebview();
_self.close();
},1500);
mui.openWindow({
url:'sub4.html',
id:'sub4.html'
});
}else{
mui.toast(data.message);
}
}

以上代码是一个post请求的回调函数,登录成功之后有toast提示,也会执行setTimeout()关闭当前页面,但是mui.openWindow()不执行,不会跳到自己指定的sub4.html页面。

2018-04-26 09:28 负责人:无 分享
已邀请:
追梦随想

追梦随想

你把openWindow封装为一个函数,放在close后面调用就可以了,或者直接放里面,不封装

  • 3***@qq.com (作者)

    setTimeout(function(){

    var _self = plus.webview.currentWebview();

    _self.close();

    mui.openWindow({

    url:'sub4.html',

    id:'sub4.html'

    });

    console.log(111);

    },1500);

    您说的是这样吗?这样111倒是可以打印出来,可是mui.openWindow并没有跳到指定的sub4.html页面。

    2018-04-26 09:52

  • 追梦随想

    这不可能啊,或者你先把关闭当前页注释了试试

    2018-04-26 09:57

  • 3***@qq.com (作者)

    回复 追梦随想:还是没有用 麻烦你看下我在底下把代码截图下来

    2018-04-26 10:12

3***@qq.com

3***@qq.com (作者) - IT民工

function(data){
if(data.status == 1){
plus.storage.setItem('phone',data.phone+'');
plus.storage.setItem('password',data.password+'');
mui.toast('登录成功');
setTimeout(function(){
var _self = plus.webview.currentWebview();
_self.close();
mui.openWindow({
url:'sub4.html',
id:'sub4.html'
});
console.log(434);
},1500);
}else{
mui.toast(data.message);
}
}

改后的代码是这样的,setTimeout()里边就只有mui.openWindow()方法不执行 console.log()都会执行

追梦随想

追梦随想

上面已经报错了哥,后面肯定不执行了

  • 3***@qq.com (作者)

    报错是因为我点了另外一个页面的报错 不影响的

    2018-04-26 10:25

追梦随想

追梦随想

mui.plusReady(function(){  
    var data = {status: 1};  
    text(data);  
})  
function text(data){  
    if(data.status == 1){  
        plus.storage.setItem('phone',data.phone+'');  
        plus.storage.setItem('password',data.password+'');  
        mui.toast('登录成功');  
        setTimeout(function(){  
//          var _self = plus.webview.currentWebview();  
//          _self.close();  
            mui.openWindow({  
                url:'setting.html',  
                id:'setting.html'  
            });  
            console.log(434);  
        },1500);  
    }else{  
        mui.toast(data.message);  
    }  
}

还是你的代码,只是注释了关闭当前页,执行成功!
原因可能是这样的:新打开窗口需要有一个父窗口,而openWindow想有延迟200毫秒的,等延迟完毕的时候当前窗口早就关闭了,所以解决办法就是给关闭当前页加一个更长的延迟,完美解决。
或者如果有能力就封装一个函数,openWindow执行完成后做一个回调函数,在回调函数里关闭当前窗口,我的项目就是这样做

1***@qq.com

1***@qq.com

一起舞蹈,没有烦恼

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