变脸式应用 - 进入与退出应用

来源:互联网 发布:六十知天命 编辑:程序博客网 时间:2024/05/16 19:31

进入与退出应用

进入应用后,框架会自动设置一些全局变量,如g_args, g_data等。

问:如何在H5应用中获取URL参数?

全局变量g_args保存了H5应用的URL参数。
例如URL为http://myserver/myproject/index.html?orderId=10&dscr=上门洗车,则该对象有以下值:

g_args.orderId=10; // 注意:如果参数是个数值,则自动转为数值类型,不再是字符串。g_args.dscr="上门洗车"; // 对字符串会自动进行URL解码。

要删除一项值,可以用delete g_args.orderId.

问:全局数据存放到哪里有规范吗?

全局数据建议都放在变量g_data中,而不是到处创建全局变量,这样查看这个变量就可以了解H5应用状态。
框架也会设置一些全局数据进去(例如userInfo保存登录后的返回数据等)。另外,如果是逻辑页之间传递信息,不要用全局变量,应使用逻辑页接口,后面章节将介绍。

对于全局配置信息,一般统一存到名为g_cfg的全局变量中。

查看H5应用JS文件index.js,有它们的声明,比如:

    var g_data = {        userInfo : null, // {id, name, uname=phone}    };    var g_cfg = {        WAIT: 3000, // 3s    };

入口页

[任务]

在地址栏直接输入http://server/app/#hello,会发现它会跳转到首页,我们希望可直接进入前面我们制作的hello页面。

打开示例H5应用客户端index.html对应的逻辑文件即index.js,会发现一开始有如下设置:

$.extend(MUI.options, {    appName: "user",    homePage: "#home",    pageFolder: "page",});MUI.validateEntry([    "#home",    "#me",    "#order"]);

第一句是设置一些框架的选项MUI.options,注意框架提供的功能多以MUI开头。
这里设置了H5应用内部名称为”uesr”(表示客户端,以后若有员工端等应用可区分开),首页名称是”#home”,逻辑页目录为”page”,也即首页实际文件为”page/home.html”.

第二句用MUI.validateEntry指定允许的入口逻辑页,如果不是从这些逻辑页进入应用,则自动跳转到首页。
如果注释掉这句,则是允许从任意逻辑页进入应用。

要想直接输入URL就能进入hello页,只要将它暴露成入口页即可,把它加到入口页列表中来:

MUI.validateEntry([    "#home",    "#me",    "#order",    "#hello"]);

注意我们现在制作的是H5应用,不是单纯用于静态展示的网页,很多状态信息(比如已登录的信息)存储在全局变量之中。
如果允许任意逻辑页进入应用,很可能因状态错误而显示出错。
每个入口页都是个对外的接口,可通过URL直接访问,如无必要,尽量不要开放。

0 0