沧海一生笑
沧海一生笑
  • 发布:2014-11-26 10:02
  • 更新:2014-11-27 19:44
  • 阅读:2564

九宫格的 subpage 按退出 还是有问题

分类:MUI

使用 HelloMUI 范例 的 首页格式 subpage 用的是 oa-grid.html 范例的九宫格,已经阅读过了,最新的处理 backbutton 退出的文章, mui 也已经升级到最新的0.7.1 。
升级到最新库后,比以前强了很多,可以退出了,不过是需要按3次 button 才能退出
第一次按 backbutton 屏幕显示一片空白, 后面连按两次 ,正常退出,说明退出代码起作用了,可能是九宫格菜单 处理了一个 backbutton 。
也测试过了子页中增加
mui.init({
keyEventBind: {
backbutton: false,
menubutton: true
}
});
还是不行

2014-11-26 10:02 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

我按照你的步骤新建了测试工程,没有重现你说的问题,我的代码上传了github上了,你可以参考:https://github.com/hbcui1984/ask/tree/master/ask-1369

沧海一生笑

沧海一生笑 (作者)

还是有问题啊, 你如果 把 九宫格作为 submenu 的首页就有问题了,例如我这个代码:
<!DOCTYPE html>
<html>

<head>  
    <meta charset="utf-8">  
    <title>通用OA精灵</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 http-equiv="pragma" content="no-cache">  
    <meta http-equiv="cache-control" content="no-cache">  
    <meta http-equiv="expires" content="0">  
    <meta name="apple-mobile-web-app-status-bar-style" content="black">  
    <script type="text/javascript">  

if(window.plus){
if(document.body){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}else{
document.addEventListener("DOMContentLoaded",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
},false);
}
}else{
document.addEventListener("plusready",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}, false );
}
</script>
<link rel="stylesheet" href="css/mui.min.css">
<script src="js/mui.js"></script>
<script src="js/update.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="js/common.js" ></script>
<script type="text/javascript" src="js/jquery-1.6.min.js" ></script>
<link rel="stylesheet" type="text/css" href="css/addon.css"/>
<script src="js/app.js"></script>
<style>
html,body {
background-color: #efeff4;
}
</style>
<script>
$.noConflict();
function currentTimeString(){
var d = new Date();
return d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+"."+d.getMilliseconds()+" - ";
}

function getLengthFun(){
return plus.storage.getLength();
}

function getItem(key){
var itemLength = getLengthFun();
var value = plus.storage.getItem(key);
return value;
}

function setItem(key,value) {
plus.storage.setItem( key, value );
}
</script>
</head>

<body>  

<style>
.mui-slider-indicator {
bottom: 0;
}
.mui-slider {
background-color: #f2f2f2;
}
</style>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">API功能调用演示</h1>
</header>
<div class="mui-content">
<div id="Gallery" class="mui-slider" style="margin-top:15px;">
<div id="Gall2" class="mui-slider-group">
<div id="item1" class="mui-slider-item">
<ul class="mui-table-view mui-grid-view mui-grid-9">
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/accelerometer.html">
<span class="mui-icon mui-icon-home"></span>
<div class="mui-media-body">加速度</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/audio.html">
<span class="mui-icon mui-icon-email"></span>
<div class="mui-media-body">音频录制</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/barcode.html" >
<span class="mui-icon mui-icon-chatbubble"></span>
<div class="mui-media-body">二维码扫描</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/geolocation.html">
<span class="mui-icon mui-icon-location"></span>
<div class="mui-media-body">地理定位</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/maps.html">
<span class="mui-icon mui-icon-search"></span>
<div class="mui-media-body">地图</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/message.html">
<span class="mui-icon mui-icon-phone"></span>
<div class="mui-media-body">消息通讯</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/camera.html">
<span class="mui-icon mui-icon-gear"></span>
<div class="mui-media-body">摄像头拍照</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/device.html">
<span class="mui-icon mui-icon-paperplane"></span>
<div class="mui-media-body">设备信息</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/info.html">
<span class="mui-icon mui-icon-info"></span>
<div class="mui-media-body">定制开发</div>
</a>
</li>
</ul>
</div>
<div id="item2" class="mui-slider-item">
<ul id="item2a" class="mui-table-view mui-grid-view mui-grid-9">
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/file.html">
<span class="mui-icon mui-icon-flag"></span>
<div class="mui-media-body">文件系统</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/gallery.html">
<span class="mui-icon mui-icon-email"></span>
<div class="mui-media-body">系统相册</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/navigator.html">
<span class="mui-icon mui-icon-chatbubble"></span>
<div class="mui-media-body">浏览器环境</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/orientation.html">
<span class="mui-icon mui-icon-location"></span>
<div class="mui-media-body">方向</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/payment.html">
<span class="mui-icon mui-icon-search"></span>
<div class="mui-media-body">支付</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/proximity.html">
<span class="mui-icon mui-icon-phone"></span>
<div class="mui-media-body">距离</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/push.html">
<span class="mui-icon mui-icon-gear"></span>
<div class="mui-media-body">消息推送</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/runtime.html">
<span class="mui-icon mui-icon-more"></span>
<div class="mui-media-body">运行环境</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/info.html">
<span class="mui-icon mui-icon-info"></span>
<div class="mui-media-body">定制开发</div>
</a>
</li>
</ul>
</div>
<div id="item3" class="mui-slider-item">
<ul class="mui-table-view mui-grid-view mui-grid-9">
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/share.html">
<span class="mui-icon mui-icon-home"></span>
<div class="mui-media-body">分享</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/speech.html">
<span class="mui-icon mui-icon-email"></span>
<div class="mui-media-body">语音识别</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/statistic.html">
<span class="mui-icon mui-icon-chatbubble"></span>
<div class="mui-media-body">统计管理</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/uploader.html">
<span class="mui-icon mui-icon-location"></span>
<div class="mui-media-body">上传管理</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/xhr.html">
<span class="mui-icon mui-icon-search"></span>
<div class="mui-media-body">跨域请求</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/zip.html">
<span class="mui-icon mui-icon-phone"></span>
<div class="mui-media-body">文件压缩</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/njs.html">
<span class="mui-icon mui-icon-gear"></span>
<div class="mui-media-body">调用原生代码</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/webview.html">
<span class="mui-icon mui-icon-more"></span>
<div class="mui-media-body">窗口管理</div>
</a>
</li>
<li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
<a href="plus/info.html">
<span class="mui-icon mui-icon-info"></span>
<div class="mui-media-body">定制开发</div>
</a>
</li>
</ul>
</div>
</div>
<div class="mui-slider-indicator">
<div id="sidc0" class="mui-indicator mui-active"></div>
<div id="sidc1" class="mui-indicator"></div>
<div id="sidc2" class="mui-indicator"></div>
</div>
</div>
</div>
<script>
mui.init({
swipeBack: false,
keyEventBind: {
backbutton: false,
menubutton: true
}
});

mui.ready(function() {  
    var slider = document.getElementById('Gallery');  
    var group = slider.querySelector('.mui-slider-group');  
    var items = mui('.mui-slider-item', group);  
    var first = items[0].cloneNode(true);  
    first.classList.add('mui-slider-item-duplicate');  
    var last = items[items.length - 1].cloneNode(true);  
    last.classList.add('mui-slider-item-duplicate');  
});  

</script>
</body>
</html>

沧海一生笑

沧海一生笑 (作者)

把这个 main.html 作为主页, 九宫格的 menu.html 作为 subpage ,就会出现我说的按三次才能退出的情况了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello MUI</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">
<script type="text/javascript">
if(window.plus){
if(document.body){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}else{
document.addEventListener("DOMContentLoaded",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
},false);
}
}else{
document.addEventListener("plusready",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}, false );
}
</script>
<link rel="stylesheet" href="css/mui.min.css">
<script src="js/mui.js"></script>
<script src="js/update.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<button id="M_quit" class="mui-btn mui-btn-primary mui-btn-link mui-pull-right">
退出
</button>
<h1 class="mui-title">通用OA精灵 用户:李宁 角色:CEO </h1>
</header>
<script>
mui.init({
swipeBack : false,
subpages : [{
id : 'menu.html',
url : 'menu.html',
styles : {
top : '48px',
bottom : 0,
bounce :'vertical'
//scrollIndicator : "none"
}
}]
});

document.getElementById('M_quit').addEventListener('tap', function() {  
    var btnArray = ['是','否'];  
    mui.confirm('退出确认?','通用OA精灵',btnArray,function(e){  
        if(e.index==0){  
            plus.runtime.quit();  
        }else{  
            window.location.href=window.location.href;   
            window.location.reload;               
        }  
    })  
  });  

// mui.plusReady(function() {
// //首页返回键处理
// //处理逻辑:1秒内,连续两次按返回键,则退出应用;
// var first = null;
// plus.key.addEventListener('backbutton', function(){
// var btnArray = ['是','否'];
// mui.confirm('退出确认?','通用OA精灵',btnArray,function(e){
// if(e.index==0){
// plus.runtime.quit();
// }else{
// window.location.href=window.location.href;
// window.location.reload;
// }
// })
// }, false);
// });
mui.plusReady(function() {
//首页返回键处理
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
plus.key.addEventListener('backbutton', function(){
//首次按键,提示‘再按一次退出应用’
if(!first){
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function(){
first = null;
},1000);
}else{
if(new Date().getTime()-first<1000){
plus.runtime.quit();
}
}
}, false);
});

    </script>  
</body>  

</html>

沧海一生笑

沧海一生笑 (作者)

把这个 main.html 作为主页, 九宫格的 menu.html 作为 subpage ,就会出现我说的按三次才能退出的情况了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello MUI</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">
<script type="text/javascript">
if(window.plus){
if(document.body){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}else{
document.addEventListener("DOMContentLoaded",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
},false);
}
}else{
document.addEventListener("plusready",function(){
// mui.toast( currentTimeString()+" HTML5 Plus已准备" );
}, false );
}
</script>
<link rel="stylesheet" href="css/mui.min.css">
<script src="js/mui.js"></script>
<script src="js/update.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<button id="M_quit" class="mui-btn mui-btn-primary mui-btn-link mui-pull-right">
退出
</button>
<h1 class="mui-title">通用OA精灵 用户:李宁 角色:CEO </h1>
</header>
<script>
mui.init({
swipeBack : false,
subpages : [{
id : 'menu.html',
url : 'menu.html',
styles : {
top : '48px',
bottom : 0,
bounce :'vertical'
//scrollIndicator : "none"
}
}]
});

document.getElementById('M_quit').addEventListener('tap', function() {  
    var btnArray = ['是','否'];  
    mui.confirm('退出确认?','通用OA精灵',btnArray,function(e){  
        if(e.index==0){  
            plus.runtime.quit();  
        }else{  
            window.location.href=window.location.href;   
            window.location.reload;               
        }  
    })  
  });  

// mui.plusReady(function() {
// //首页返回键处理
// //处理逻辑:1秒内,连续两次按返回键,则退出应用;
// var first = null;
// plus.key.addEventListener('backbutton', function(){
// var btnArray = ['是','否'];
// mui.confirm('退出确认?','通用OA精灵',btnArray,function(e){
// if(e.index==0){
// plus.runtime.quit();
// }else{
// window.location.href=window.location.href;
// window.location.reload;
// }
// })
// }, false);
// });
mui.plusReady(function() {
//首页返回键处理
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
plus.key.addEventListener('backbutton', function(){
//首次按键,提示‘再按一次退出应用’
if(!first){
first = new Date().getTime();
mui.toast('再按一次退出应用');
setTimeout(function(){
first = null;
},1000);
}else{
if(new Date().getTime()-first<1000){
plus.runtime.quit();
}
}
}, false);
});

    </script>  
</body>  

</html>

DCloud_UNI_CHB

DCloud_UNI_CHB

你贴的代码格式好乱啊,把你有问题的工程直接做个压缩包上传吧。

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