会飞的羊
会飞的羊
  • 发布:2016-05-27 22:25
  • 更新:2017-04-20 15:00
  • 阅读:1981

安卓回退按钮子页面变空白页面

分类:MUI

我们现在的模式是index页面里面包括4个主要的子页面,

在其中一个子页面点击安卓的回退键,我希望能弹出对话框,提示我是否要关闭app,选”是“,就关闭App
但是实际上MUI会关闭子页面,出现一个白板屏幕。

可否点击后阻止关闭子页面,我试了很多办法,包括
重写
mui.back = function() {

            plus.nativeUI.confirm("是否要关闭App", function(e){  
                if(e.index==0)  
                {  
                    plus.runtime.quit();      
                }  

            })                
        }  

keyEventBind: {
backbutton: false
}

都无法阻止白板页,请问有什么解决办法么?

2016-05-27 22:25 负责人:无 分享
已邀请:
赵梦欢

赵梦欢 - 专注前端,乐于分享!

直接用5+的返回键监听呢

  • 会飞的羊 (作者)

    请问如何使用5+的返回键,方便详细讲一下么?

    2016-05-28 10:26

  • 赵梦欢

    监听返回键:http://www.html5plus.org/doc/z ... tener

    webview back():http://www.html5plus.org/doc/z ... .back


    下面是帮一个网友做的一个打包wap站的代码:

    <script type="text/javascript" charset="utf-8">

    var ws=null,nw=null,canback=null,canforward=null;

    function plusReady(){

    ws=plus.webview.currentWebview();

    nw=plus.webview.create("https://www.baidu.com/");

    nw.show();

    plus.key.addEventListener("backbutton",function(){

    //查询Webview窗口是否可后退

    nw.canBack( function(e){

    canback=e.canBack;

    console.log("canback:"+canback);

    });

    //查询Webview窗口是否可前进

    nw.canForward( function(e){

    canforward=e.canForward;

    console.log("canforward:"+canforward);

    });

    //当进入以后的逻辑判断

    if(canback){

    nw.back();

    }else{

    if(!canforward){

    exit();

    }

    }

    });

    }


    if(window.plus){

    plusReady();

    }else{

    document.addEventListener("plusready",plusReady,false);

    }


    function exit(){

    // 弹出提示信息对话框

    plus.nativeUI.confirm( "Are you sure ready?", function(e){

    if(e.index==0){

    plus.runtime.quit();

    }

    }, "您想要退出吗?", ["Yes","No"] );

    }

    </script>

    2016-05-28 21:41

会飞的羊

会飞的羊 (作者)

我感觉backbutton监听只能个附加一些自定义的处理,不能完全覆盖原有的功能,就是说子页面要关还是会关,完全阻止不了。

小飞牛

小飞牛

试试写一个beforeback,在关闭前做提示
例如
mui.init({
beforeback:function(){
plus.nativeUI.confirm('是否要关闭App', function(e){
if(e.index==0)
{
return true;
plus.runtime.quit();
}else{
return false; //返回false可以阻止关闭页面
}
}
}
})

  • 会飞的羊 (作者)

    谢谢,我解决了!

    2016-06-14 17:17

会飞的羊

会飞的羊 (作者)

谢谢,搞定了

小小小稳

小小小稳

同求解决方案

会飞的羊

会飞的羊 (作者)

我是之前代码有问题,在common.js里面加了一段多余的backbutton的方法,导致多余了,去掉了就可以了。然后用hbuilder例子里的backbutton代码就可以了。

柴东旭

柴东旭

谢谢楼主,我出现了这个问题用这个办法解决了

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