从列表打开详情页面,并向其传值的时候时候,可以添加窗口的自定义事件,并进行监听:
window.addEventListener('customEvent',function(event){ //通过event.detail可获得传递过来的参数内容 });
在列表页面触发自定义事件即可: mui.fire(targetPage,'customEvent',{//自定义事件参数});
新闻列表页面:
mui.init({preloadPages:[{id:'detail.html',url:'detail.html'}]});var detailPage = null;//添加列表项的点击事件mui('.mui-content').on('tap', 'a', function(e) {var id = this.getAttribute('id');//获得详情页面if(!detailPage){detailPage = plus.webview.getWebviewById('detail.html');}//触发详情页面的newsId事件mui.fire(detailPage,'newsId',{id:id});//打开详情页面mui.openWindow({id:'detail.html'});});
详情页面代码如下:
//添加newId自定义事件监听window.addEventListener('newsId',function(event){//获得事件参数var id = event.detail.id;//根据id向服务器请求新闻详情.....})
除此之外还可以使用localstorage进行传值,缺点是没法进行预加载。