最近公司在做的一个项目涉及个推推送,在写推送过程中遇到了很多问题,现在把其中的一个问题与大家分享。
我们要实现的功能是后台推送过来,我要根据推送的信息类型进入不同的页面,展现不同的信息,但在写的过程中发现同一种类型信息,在不关闭前一条信息的情况下,点击下一条同类型的信息,打开的页面还是显示上一条信息的内容。通过查找发现,是因为上一页面未关闭,再打开下一条信息,并没有重新打开一个新的页面,也就没有进行重新请求数据,只是将前一个页面显示到最前面,针对这个问题,有以下解决办法。
mui.openWindow({
url:new-page-url,
id:new-page-id,
styles:{
top:newpage-top-position,//新页面顶部位置
bottom:newage-bottom-position,//新页面底部位置
width:newpage-width,//新页面宽度,默认为100%
height:newpage-height,//新页面高度,默认为100%
......
},
extras:{
.....//自定义扩展参数,可以用来处理页面间传值
},
createNew:false,//是否重复创建同样id的webview,默认为false:不重复创建,直接显示
show:{
autoShow:true,//页面loaded事件发生后自动显示,默认为true
aniShow:animationType,//页面显示动画,默认为”slide-in-right“;
duration:animationTime//页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;
},
waiting:{
autoShow:true,//自动显示等待框,默认为true
title:'正在加载...',//等待对话框上显示的提示内容
options:{
width:waiting-dialog-widht,//等待框背景区域宽度,默认根据内容自动计算合适宽度
height:waiting-dialog-height,//等待框背景区域高度,默认根据内容自动计算合适高度
......
}
}
})
这是mui文档中给出的方法,在打开新页面中有一个createNew:false,的参数,false代表不重复创建新页面,若要创建一个新页面,只需把createNew的值设为true就可以了。
以上是我解决该问题的方法,若有更好的方法,欢迎一起分享。