基于HTML5之APP页面间的传值的几种方式

来源:互联网 发布:社会网络信息流模型 编辑:程序博客网 时间:2024/06/05 18:51

一 摘要

在做APP开发时,避免不了出现两个页面之间的传值,在iOS开发中两个页面传值常见的有:属性传值,block,代理,通知等方式.那么web程序两个页面传值的形式有哪些呢,在这里我给大家总结一下.

1)PC版的web程序

两个两个页面之间的传值方式主要有:

1.cookie2.查询字符串3.还可以通过服务端的session来交换数据

2)HTML之app的传值方式

主要有:

1.HTML5 LocalStorage 本地存储2.隐藏字段3.服务器端的session等4..页面已创建,通过自定义事件传值5.扩展参数

这里就不对上面的传值方式进行一一解释了,大家自己去了解.在这给大家着重介绍最后一种通过扩展参数来进行传值.这里以mui框架为例.
mui在初始化页面时,提供了extras配置参数,通过该参数可以设置页面参数,从而实现页面间传值;
mui框架在如下几种场景下,会执行页面初始化操作:

1.通过mui.init()方法创建子页面;

mui.init({      subpages: [{          url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址          id: your - subpage - id, //子页面标志          styles: {              top: subpage - top - position, //子页面顶部位置              bottom: subpage - bottom - position, //子页面底部位置              width: subpage - width, //子页面宽度,默认为100%              height: subpage - height, //子页面高度,默认为100%              ......          },          extras: {} //额外扩展参数      }]  }); 

2.通过mui.init()方法预加载页面;

一般形式

mui.init({      preloadPages: [{          url: prelaod - page - url,          id: preload - page - id,          styles: {}, //窗口参数          extras: {}, //自定义扩展参数          subpages: [{}, {}] //预加载页面的子页面      }]  });

3.通过mui.preload()方法预加载页面

一般形式

var page = mui.preload({      url: new - page - url,      id: new - page - id, //默认使用当前页面的url作为id      styles: {}, //窗口参数      extras: {} //自定义扩展参数  }); 

4)通过mui.openWindow方法预加载页面

一般形式

mui.openWindow({      url: new - page - url,      id: new - page - id,      styles: {          top: newpage - top - position, //新页面顶部位置          bottom: newage - bottom - position, //新页面底部位置          width: newpage - width, //新页面宽度,默认为100%          height: newpage - height, //新页面高度,默认为100%          ......      },      extras: {          ..... //自定义扩展参数,可以用来处理页面间传值      }      show: {          autoShow: true, //页面loaded事件发生后自动显示,默认为true          aniShow: animationType, //页面显示动画,默认为”slide-in-right“;          duration: animationTime //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;      },      waiting: {          autoShow: true, //自动显示等待框,默认为true          title: '正在加载...', //等待对话框上显示的提示内容          options: {              width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度              height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度              ......          }      }  }) 

5)mui.openWindow具体使用

first.html文件

<!DOCTYPE html><html>    <head>    <meta charset="UTF-8">    <title></title>    <link rel="stylesheet" type="text/css" href="css/mui.min.css"/>    <script src="js/mui.min.js" type="text/javascript" charset="utf-8"></script>    </head>    <body>    <script type="text/javascript">    mui.openWindow({        url:'second.html',    id:'second',    extras:{     name:'second',     version:'1.0.0'    }});     </script></body></html>

second.html文件

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>        <link rel="stylesheet" type="text/css" href="css/mui.min.css"/>        <script src="js/mui.min.js" type="text/javascript" charset="utf-8"></script>        <script src="js/mui.js" type="text/javascript" charset="utf-8"></script>        <style type="text/css">            div{                width: 200px;                height: 200px;                background: red;            }        </style>    </head><body><div id="footer"></div><script type="text/javascript">var div = document.getElementById("footer");mui.init();var self = plus.webview.currentWebview();var name = self.name;var version = self.version;div.innerHTML = name;</script></body></html>
注意:一定要在手机上进行模拟运行,否则看不出效果的且会报错出现plus未定义.
5 3
原创粉丝点击