`

mui框架搭建app不同页面间传值的问题

 
阅读更多

        最近这个礼拜在捣鼓使用hbuilder+mui来实现移动app,然后有个功能需要用到页面间传值,然后官网是说根据不同的业务场景,有两种方式实现页面间传值,一种是通过在mui.openWindow()方法中使用extras参数来给详情页面传递参数,如下所示:

        传值页面代码如下:

        mui.openWindow({

              id:"xxx.html",

              url:"xxx.html",

              extras:{

                    property1:value1,

                    property2:value2

              },

        });

        目标页面通过如下所示方式获取到传过来的参数:

         var   self=plus.webview.getCurrentWebview();

         var  property1=self.property1;

        另外一种方式就是通过自定义事件来传递参数了,先在mui.init方法中预加载目标页面,然后通过mui.fire方法来触发自定义事件,再在目标页面监听自定义事件;但是在自己的实践过程中,发现在相应的代码中,一直报目标页面找不到的错误Uncaught Error: webview[newsList.html] does not exist at js/mui.min.js:6

       列表代码如下所示:

                      mui.init({

                             preloadPages:[

                                        {

                                             id:"newsList.html",

                                             url:"newsList.html"

                                         }

                               ]

                     });

                    var detailPage=null;

                    mui.plusReady(function(){

                             /*detailPage=mui.preload({

                                     //注,下面的代码能够使得使用自定义事件在两页面传值成功

                                     id:"newsList.html",  

                                     url:"newsList.html"

                            })*/

                     //添加列表点击事件

                     mui("#newsList").on("tap","a",function(event){

                               var id=this.getAttribute("id");

                               //获得详情页面

                               if(!detailPage){

                                        detailPage=plus.webview.getWebviewById("newsList.html");

                                //因为是在mui.init()方法中使用的预加载方式,所以下面代码会显示为null

                                        alert(detailPage);    

                               };

                               //下面的代码是触发详情页面的newsId事件,其中detailPage为目标页面,

                               //newsId为在目标页面自定义的事件名称eventName

                               //第三个参数为封装的需要传递给目标页面的参数对象

                               mui.fire(detailPage,'newsId',{

                                        id:id

                                });

                                //打开详情页面

                               mui.openWindow({

                                        id:"newsList.html",

                                        /*extras:{       //利用extras方法传递简单的参数至另外一个页面

                                             names:"1234"

                                        }*/

                                  })

                             })

                        });

             如上述代码所示,通过在mui.init()方法中预加载的方式的话,就会报找不到详情页面,

            后面通过查找资料,发现得使用另外一种预加载的方式,即:mui.preload()方法,而且该方法得放到mui.plusReady()里面,具体代码如下所示:

                        mui.init();

                        var detailPage=null;

                        mui.plusReady(function(){

                                   detailPage=mui.preload({

                                                id:"newsList.html",

                                                url:"newsList.html"

                                   })

                                  //添加列表点击事件

                                  mui("#newsList").on("tap","a",function(event){

                                            var id=this.getAttribute("id");

                                            //获得详情页面

                                            if(!detailPage){

                                                  detailPage=plus.webview.getWebviewById("newsList.html");

                                                  alert(detailPage);

                                            };

                                           mui.fire(detailPage,'newsId',{

                                                  id:id

                                           });

                                           //打开详情页面

                                           mui.openWindow({

                                                   id:"newsList.html",

          //注意:在使用自定义事件传递参数时,当目标页面已经预加载成功后,此时再如下代码所示使用

          //使用extras传递参数,那么在目标页面无法获取该参数。

                                                   /*extras:{       //利用extras方法传递简单的参数至另外一个页面

                                                          names:"1234"

                                                    }*/

                                           })

                                   })

                           });

       以上就是使用自定义事件传递参数时的代码示例(使用自定义事件传递参数时,如果是在mui.init()方法中预加载目标页面的话,会导致在给列表项添加点击事件时,目标页面(即所谓的详情页面)会不存在的情况),所以建议在mui.plusReady()方法中使用mui.preload()方式预加载详情页面

分享到:
评论

相关推荐

    Hbuilder MUI 页面刷新及页面传值问题

    ### HBuilder MUI 页面刷新及...综上所述,通过合理运用MUI框架提供的各种方法和特性,可以有效地解决页面刷新及页面间传值的问题。同时,利用`sessionStorage`来存储复杂数据类型,也可以方便地实现跨页面的数据共享。

    MUI手机app前端页面开发框架模板下载

    这款框架尤其适合快速开发手机应用的前端页面,提供了一套完整的开发模板,使得开发者能够快速搭建出具有原生应用体验的页面。 在提供的文件列表中,我们可以看到以下几个关键目录: 1. **fonts**:这个目录通常...

    mui开发的app例子,非常好资源,适合初学者

    1. Mui框架的基本结构和API使用,如页面路由、组件使用等。 2. 如何利用Mui构建混合App,包括HTML5、CSS3和JavaScript的使用。 3. 混合应用的开发流程,从项目初始化、界面设计、功能实现到打包发布。 4. 如何与设备...

    使用MUI框架构建App请求http接口实例代码

    MUI框架封装了android、ios等多个平台的原生接口,达到开发一个项目,采取不同打包方式,生产多种平台的app。这种方式可以大大缩短App开发的学习周期和成本,对于从事Java Web开发的工程师带来了极大的福音。 使用...

    mui开发的租房app

    1. UI组件设计:mui提供了多种预设的UI组件,如列表、按钮、表单等,可快速搭建租房App的基本界面。例如,房源列表可以采用mui的list组件,结合grid布局展示房源图片和信息;预约看房按钮可以使用button组件,设置...

    mui框架高性能App框架目前最接近原生App效果的框架

    性能和体验的差距,一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页...mui框架有效的解决了这些问题,这是一个可以方便开发出高性能App的框架,也是目前最接近原生App效果的框架。

    采用mui框架实现的H5 商城

    mui框架提供了丰富的页面切换动画效果,可以为商城的首页增添视觉吸引力。通过使用mui的page组件,我们可以轻松地创建和管理多页面应用,实现平滑的页面过渡,提升用户体验。 接下来,产品分类是商城不可或缺的一...

    mui_app汇总整理.doc

    【摘要】:“mui_app汇总整理”文档主要涵盖了mui开源框架用于开发APP的相关内容,包括框架介绍、开发工具HBuilder的使用、框架开发步骤、核心思路以及常用知识点。 【标签】:“mui-app” 【正文】: MUI框架是...

    仿小米mui移动app页面

    【标题】"仿小米mui移动app页面"涉及的是移动端应用开发,主要使用了mui框架,这是一种基于HTML5技术的开源框架,旨在简化移动应用的开发流程。小米mui(Mobile UI)设计灵感来源于小米MIUI系统,它提供了丰富的组件...

    MUI实现微信App开发.rar

    《使用MUI框架开发微信App的全面指南》 在当今移动互联网时代,微信App开发已经成为开发者们的热门选择,尤其对于想要实现跨平台兼容性的开发者来说,MUI框架提供了一个高效且便捷的解决方案。MUI是DCloud(数字...

    mui框架手机网站模板

    5. 交互逻辑:利用mui提供的事件监听和处理机制,实现页面间的交互和数据通信。 四、实际案例分析 假设我们要构建一个新闻资讯类手机网站模板,可以这样做: 1. 使用mui的顶部导航组件,显示新闻分类和搜索框,...

    html5、移动端、mui+app尺寸适配、屏幕适配、屏幕自适应插件,解决不同手机尺寸的手机适配问题

    html5+app、移动端、mui+app尺寸适配、屏幕适配、屏幕自适应插件,解决不同手机尺寸的手机适配问题

    基于mui移动微商城APP模板.zip

    本篇将详细介绍基于mui框架的移动微商城APP模板,以及如何利用这个模板快速构建一个功能完备的移动端商城应用。 首先,我们要了解什么是mui框架。mui(Mobile UI)是阿里巴巴开源的一款轻量级的前端开发框架,主要...

    mui框架手机网页开发,包含登录、注册

    MUI框架内置了适应不同屏幕尺寸的机制,能较好地处理屏幕适配问题。 六、优化与性能提升 为了提高用户体验,可以优化页面加载速度,如使用延迟加载、代码分割等技术。同时,注意减少HTTP请求,优化图片资源,以提升...

    MUI 漫画APP.zip

    《MUI 漫画APP》是一款基于MUI框架开发的简单漫画阅读应用程序。MUI是DCloud(数字天堂)推出的一款轻量级的前端框架,专为移动Web应用设计,旨在提供一套易于上手、功能完备且性能优化的组件库,帮助开发者快速构建...

    MUI之父页面刷新

    MUI提供了事件广播机制,可以用于父子页面间的通信。 4. **API调用**:MUI框架提供了一些API,例如`mui.back()`用于返回上一页,`mui.openWindow()`用于打开新页面。在父页面刷新时,可能需要利用这些API来控制页面...

    MUI框架开发HTML5

    - **混合App开发**:MUI也可以与Hybrid框架(如Apache Cordova)结合,用于开发跨平台的混合移动应用。 - **企业级项目**:对于需要快速构建复杂功能的企业级项目,MUI可以作为前端开发的标准工具库,帮助团队提升...

    MUIDemos, MUI框架集成、DemoApp、代码示例.zip

    《MUI框架集成与DemoApp深度解析》 MUI框架,作为一个开源的移动前端开发框架,因其高效、轻量级和兼容性强的特点,在移动应用开发领域广受开发者喜爱。MUIDemos项目则集中展示了MUI的各类功能和用法,为开发者提供...

    Android本地APP集成Mui框架

    "Android本地APP集成Mui框架"就是一个关于如何将Mui框架整合到Android应用中的实践教程。Mui框架是一个轻量级的前端框架,它允许开发者快速构建响应式、移动优先的用户界面,尤其适用于混合开发或跨平台应用。 Mui...

    2018mui教程 mui实战视频教程 web移动端开发教程+源码

    16【微信子页面】页面间传值 17【相册】Html5访问手机相册,发送单张图片 18【相册】Html5访问手机相册,发送多张图片 19【摄像头】Html5访问手机摄像头,发送拍摄照片 20【摇一摇】获取重力感应 21【摇一摇】...

Global site tag (gtag.js) - Google Analytics