MUI 预加载及自定义方法fire

目的:a页面预加载b页面,a页面跳转b页面,a页面使用自定义方法fire,b页面监听a页面自定义方法。

1.a页面预加载b页面。(写在a页面)

mui.init({
	//预加载详情页
	preloadPages: [{
		url: 'b.html',//b页面url路径
		id: 'b.html'//b页面id
	}]		
});

2.a页面跳转b页面  通过某个事件,这里举例tap事件,创建自定义方法,然后执行跳转。(写在a页面)

$("#tab li").on('tap', function() {
	var setPage = plus.webview.getWebviewById('b.html');//获取预加载的b页面id
	var site = $(this).attr("title");//获取li 里面的title 当做参数如果不需要传参数则不写
	mui.fire(setPage, 'moreInfo', {//自定义方法 setPage(获取预加载的a页面id)自定义方法名称为'moreInfo',  'SiteName'(传递的参数)
		SiteName: site
	});
	mui.openWindow({
	    id: 'b.html',//b页面id
	    show: {
	            autoShow: true, //页面loaded事件发生后自动显示,默认为true
		    aniShow: "slide-in-right"
	    },
       });
})

3.b页面监听a页面自定义方法。(写在b页面)

var siteName ="";
window.addEventListener('moreInfo', function(event) {//moreinfo 监听a页面自定义的方法
	siteName = event.detail.SiteName; //获取a页面传递的参数 如果a页面没有传递参数则不需要
	//do something...  这里写业务逻辑
});

以下为注意事项:

1.预加载的页面页面关闭的时候不要关闭webview,如果关闭了会导致获取不到预加载b页面的id,所以返回的时候隐藏页面,通过监听mui.back()实现。(写在b页面)

mui.back = function() {
	plus.webview.currentWebview().hide("auto", 300); //隐藏当前页面,这里300是隐藏页面的动画时间,单位毫秒,可自定义
}

2.如果在IOS上,触摸屏幕边缘也是可以关闭页面,造成问题同上,所以处理IOS要做以下处理。(写在b页面)

mui.plusReady(function() {
	//右滑返回隐藏webview
	plus.webview.currentWebview().setStyle({
		'popGesture': 'hide'
	);
        //这里的例子是每次进入都会重新加载数据,所以退出(退出以通过处理改为隐藏hide)需要清空页面加载的数据
	var self = plus.webview.currentWebview();
	self.addEventListener("hide", function(e) {
           //do something...  这里清空加载的数据
        }, false)
});

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值