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

一 摘要

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

你可能感兴趣的:(ios,html5,APP)