DCloud_UNI_CHB
DCloud_UNI_CHB
  • 发布:2014-09-23 14:42
  • 更新:2019-07-12 12:20
  • 阅读:288444

mui框架如何实现页面间传值

分类:MUI

在App开发中,页面间传值是很常见的开发需求,mui框架根据业务场景不同,提供了两种传值模式。
1、页面初始化时,通过扩展参数传值;
mui在初始化页面时,提供了extras配置参数,通过该参数可以设置页面参数,从而实现页面间传值;
mui框架在如下几种场景下,会执行页面初始化操作:

  • 通过mui.openWindow()打开新页面(若目标页面为已预加载成功的页面,则在openWindow方法中传递的extras参数无效);
  • 通过mui.init()方法创建子页面;
  • 通过mui.init()方法预加载页面;
  • 通过mui.preload()方法预加载页面

示例,假设我们有如下需求:
在首页中打开关于页面时,传递当前产品名称及版本号,然后在关于页面中读取这两个参数并显示出来;

首页实现代码:

mui.openWindow({  
    url:'info.html',  
    id:'info.html',  
    extras:{  
        name:'mui',  
        version:'0.5.8'  
    }  
});

关于页面实现代码:

var self = plus.webview.currentWebview();  
var name = self.name;  
var version = self.version;

2、页面已创建,通过自定义事件传值
参考mui官网中自定义事件的介绍

45 关注 分享
小小雨 damdmen Mr丶Leo wang_ Ayumi 互帮互助 憨憨的爱 choujjss flax 薇妮儿的阳光雨 Esong shfnooy tolerious WaKing imengxin 小小时光 chen214123158 肥陈 星辰和星空 王大大 Eric_ou roller 5***@qq.com HCloud 老醒 4***@qq.com Trust 绝云气 清风脱然至 husheng 2***@qq.com 9***@qq.com gaohuazi jtshushu a***@163.com 雪之梦技术驿站 9***@qq.com 辰欤小迟 Warn 1***@qq.com 陈沐沐 1***@qq.com 3***@qq.com 5***@qq.com 2***@qq.com

要回复文章请先登录注册

DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 luopan :
检查js代码位置,看totalCollec对象是否存在;
2015-11-11 14:45
luopan

luopan

子页面:
mui.preload({
url: 'inp_earnings.html',
id: 'inp_earnings'
});
var pages = plus.webview.getWebviewById('inp_earnings');
mui.fire(pages,'getid',{
id:s
});
父页面:
window.addEventListener('getid',function(e){
var totalCollec=document.getElementById('totalCollec');
var id=e.detail.id;
totalCollec.innerText=id;
alert(totalCollec.innerText);
});
值传过来了,但是不能显示到界面上,求助!!!!
2015-11-10 11:24
小影

小影

plusReady事件发生后可以,子页面接收值写在plusReady里;
function plusReady() {

var self = plus.webview.currentWebview();
var urerid= self.userid;
}
2015-09-15 20:28
cszchong

cszchong

回复 moiste :
我获取的值也是undefined,请问你最后是怎么解决的
2015-08-13 17:15
憨憨的爱

憨憨的爱

对我很有帮助
2015-08-05 11:30
Nicksxs

Nicksxs

回复 等烟雨 :
怎么解决的?
2015-07-15 16:09
wang_

wang_

父页面可以向子页面传值,但子页面怎么向父页面传值?self.evalJS("plus.webview.getWebviewById('info.html').name='abc'");后,self.name好像还是'mui'
2015-06-17 15:19
DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 wang_ :
你的语法错误,mui.openWindow方法中应该穿参数,不能写代码;
2015-06-16 17:16
wang_

wang_

mui.openWindow(
var li =self.element.querySelector('.mui-table-view-cell');
alert(li);
);
为什么一直报第二行错?
2015-06-15 17:46
贰大的

贰大的

回复 hoofa :
同问 最后怎么解决了?
2015-06-10 16:15