计算机知识

当前位置:澳门新葡萄京 > 计算机知识 > 页面跳转传值无疑是很多初学者遇到的难题之一

页面跳转传值无疑是很多初学者遇到的难题之一

来源:http://www.hhmtch.com 作者:澳门新葡萄京 时间:2019-05-10 06:31

  选拔MUI开垦应用程式时,页面跳转传值无疑是过多初学者遭遇的难点之1,笔者在支付时也遇到了一样的主题素材,所以在此处计算了刹那间,方便未来翻看。

1、页面预加载时传值

mui.init({
  preloadPages:[{
      url:prelaod-page-url,
      id:preload-page-id,
      styles:{},
      extras:{
        name:'zqm'
      },//在这里添加要传递的参数
      ...
    },
    ...]
});
或如下
var page = mui.preload({ 
     url:new-page-url,
     id:new-page-id, 
     styles:{}, 
     extras:{
        name:'zqm'    //自定义扩展参数 
     }
});

经过上述办法预加载页面,然后在加载的百般页面中承受参数。

mui.plusReady(function(){
    var self = plus.webview.currentWebview();
    var name = self.name;//获得参数
});

2、通过mui.openWindow张开窗口向页面传递参数

    这种传值方法一般我们的做法如下:

     在参数生成页面中

mui.openWindow({
         id: 'list.html',
         url: 'list.html',
         show: {
                aniShow: 'pop-in'
          },
           extras: {    //extras里面的就是参数了
                name: "zqm"
           },
           waiting: {
                 autoShow: true, //自动显示等待框,默认为true
           }
  });

 

    在参数接收页面中

mui.plusReady(function(){
    var self = plus.webview.currentWebview();
    var name = self.name;//获得参数
});

一般来说大家传参就那样进行,可是由于那个页面,多次被张开,发生了看似缓存的场景,所以,不常候这一个plusReady不能够保险每一次都能举办。所以,小编扩大了三个自定义事件,来退换那些处境,达成形式如下(笔者是齐镳并驱,plusReady也收获值,自定义事件也获取值)。

那好,上面笔者出现说法一下自己的法子(下边那个监听1个开关,然后张开五个页面);

var apage = null;
 mui.plusReady(function() {
        mui.preload({ 
              url: "list.html",
              id: "list.html", //默认使用当前页面的url作为id
              styles: {}, //窗口参数 
              extras: { name: "预加载的参数" } //自定义扩展参数 
          });
document.getElementById("bbtn").addEventListener('tap',function({
        if(apage == null) {        //要进入list.html,第一次,它肯定为空,所以,此时下面的这个fire方法,是不会执行的。
             apage = plus.webview.getWebviewById("list.html");
         }
         mui.fire(apage, 'hahaha',{ name: "zqm" });
           apage.show();
     });
 });

接下去,就到了参数接收页面,如下(首先,大家依然要在plusReady里面接收一回,因为你不能够确定保证这一次是首先张开还是其次次展开页面,所以,这些如故须要的。)

mui.plusReady(function(){
    var self = plus.webview.currentWebview();
    var name = self.name;//获得参数
});

可是假若那个是非首次展开的话,就不分明进来plusReady了,所以,参数可能接收退步了,那中间,大家将在收下自定义事件传过来的参数了,就是这段时间大家的fire这里了。

 

//添加上一个页面自定义事件监听
     window.addEventListener('hahaha', function(event) {
                //获得事件参数
                var name= event.detail.name;
     }); 

这么,大家就能够把那几个参数获取到,双重保障,就从未难点了。(假设你们须求战战兢兢一些,能够把这几个自定义事件的监听延迟个300飞秒,保障接收的票房价值,因为若是是这些自定义事件优先推行了,然后他又去试行这几个plusReady,那就能够龃龉了。)

3、通过本地存款和储蓄传值

发送参数的页面:plus.storage.setItem("targetId","1二叁");

收取参数的页面:plus.storage.getItem("targetId");

 

本文由澳门新葡萄京发布于计算机知识,转载请注明出处:页面跳转传值无疑是很多初学者遇到的难题之一

关键词: 葡京网址

上一篇: 4)在当前代码上右键点击

下一篇:没有了