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

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 (作者)

回复 moiste :
js大小写是区分的,你传入的是userId,获取的却是userid;
2014-09-24 11:17
moiste

moiste

按照你说的方式,我获取的值都是undefined
主页面
var param = {userId:userId,toKen:toKen,userRole:userRole};
function SendPage(pageId,linkUrl,pageParam)
{
mui.openWindow({
url: linkUrl,
id: pageId,
extras:param
});
}
子页面
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
function plusReady(){
var self = plus.webview.currentWebview();
alert(self.userid);
GetUserGroup(self.toKen,self.userid,'zztable');
}
能帮我看下这里又什么问题吗?这个问题已经困扰我两天了
2014-09-24 10:28
DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 moiste :
要使用plus,需要等待plusReady事件发生后才能使用;例如:
mui.plusReady(function(){
plus.webview.currentWebview();
});
2014-09-23 19:11
moiste

moiste

Uncaught ReferenceError: plus is not defined 请问这个怎么解决?我是新手
2014-09-23 15:51