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

来源:互联网 发布:mac程序如何卸载 编辑:程序博客网 时间:2024/06/15 11:37

一 摘要

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

1)PC版的web程序

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

    1.cookie

    2.查询字符串

    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未定义.