在android系统内webview中的html文件之间如何进行数值的传输

当在Android WebView中遇到无法通过URL后缀问号方式传递参数的问题,由于Android 3.0以后的限制,作者找到了一种简单方便的解决方案——使用localStorage。在MainActivity.java中启用WebView的localStorage功能,然后通过JavaScript在不同的HTML页面之间进行数据交换,避免了重新编写Android代码的需要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在做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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值