APPCAN开发笔记:html页面之间的参数传递:使用js获取url中的参数,以及在APPCAN中不能使用的解决方法

用PHP的GET/POST方式来传递方式已经是司空见惯了,但是如果我的页面是一个静态的html的页面,想传递参数的时候要怎么办呢?在APPCAN的开发中我们会经常遇到这样的问题,因为所有的页面都是静态的HTML页面,服务器的数据请求都是通过ajax来实现的,那我们如何访问一个带参数的页面呢?

首先想到的是通过js来获取url中的参数,然后获得参数后进行ajax数据交换来请求当前页面的内容,具体方法如下:

function GetRequest(key){
    var url = location.search;
    if(url.indexOf("?") != -1){
        var str = url.substr(1);
        strs = str.split("&");
        for(var i=0; i <strs.length;i++ ){
            if(key == strs[i].split("=")[0])
                var res = unescape(strs[i].split("=")[1]);
        }
    }
    return res;
}    

GetRequest是一个简单的用来获取url中key这个键对应的值,比如 goods.html?id=1页面中,我们通过GetRequest("id")就可以获得对应的值:1。

但是很不幸,到了APPCAN中,PC模拟器上一切正常,在安卓机上进行测试的时候发现,他居然不执行!

这样一来,我们只能考虑通过其他的方法来达到传参这个目的了,

备选方案是通过localstorage来实现,在点击跳转页面之前,先将参数存入localstorage,然后在新页面中获取这个参数,具体的存储及获取localstorage的方法如下:

function setLocStorage(key,val){ 
    appcan.locStorage.setVal(key,val);  
}

function getLocStorage(key){     
    var val=appcan.locStorage.getVal(key);
    return val;   
}

大功告成,虽然觉得有些别扭,但是暂时还没有想到其他比较好的替代方案,就先用着了。