码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-08-03 00:13:37      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:

一 摘要

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

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

标签:

原文地址:http://blog.csdn.net/baihuaxiu123/article/details/52098940

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!