之前在做html之间进行传输数值的时候,用的是后缀问号的方法,即形如:a.html?id=1 这种形式。
然后辛辛苦苦把全部网页做完并在pc端浏览器调试成功之后,封装到android中,把所有的html文件放进assets文件夹内,并通过webview来访问主页index.html。用android studio配置好并下载到机器(安卓版本很低)里面,运行也很成功。。。
但是,有一个大问题就是,后缀问号来传输数值的方法并不能兼容。在android设备里无法访问带有?的网站地址。一下子懵逼了…..
网上百度了很多资料,发现android3.0以后就不在支持这种方式了。
参考:http://blog.youkuaiyun.com/wenfengzhuo/article/details/7924807
要想实现此功能,看来是必须要经过app了。。。可是这就意味着要重新写代码而且要调试android。
参考:http://www.oschina.net/question/931234_2142629
http://zhidao.baidu.com/link?url=8paS-GxU7Ma2kY3zJr91O1M0UoRVoagFoHofuOqEGDHqHlCmfBtTDdfjKI-HpeNs4OJxhJxK80j3-3TNZft9bq
http://blog.youkuaiyun.com/li_li_lin/article/details/39484721
http://blog.youkuaiyun.com/qduningning/article/details/43411765
http://blogs.360.cn/360mobile/2014/09/22/webview%E8%B7%A8%E6%BA%90%E6%94%BB%E5%87%BB%E5%88%86%E6%9E%90/
http://blog.youkuaiyun.com/kevinscsdn/article/details/52241334
于是,想了一个方法….既简单又方便:localstorage。
只需要在MainActivity.java里声明webview可以使用localstorage即可:
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
然后只需要写js就可以了,而不需要再通过android了。
附js代码:
a.html
<body>
<a href="b.html" onclick="content()">提交跳转传值</a>
</body>
<script type="text/javascript">
window.onload = function() {
}
function content() {
var zhi1 = document.getElementById("id1").value;
var zhi2 = document.getElementById("id2").value;
localStorage.setItem("1", id1);
localStorage.setItem("2", id2);
}
</script>
b.html
<script type="text/javascript">
window.onload=function(){
var a=localStorage.getItem("1");
var b=localStorage.getItem("2");
document.getElementById("jieshouzhi1").value=a;
document.getElementById("jieshouzhi2").value=b;
}
</script>