Android 3.0 以上系统 webView 无法在html中传值的解决办法
来源:互联网 发布:淘宝账户已被冻结 编辑:程序博客网 时间:2024/06/08 10:01
android2.2 以前,webView 是支持html之间传值的,传值的方式很简单,就像是普通get请求一样。例如,“index.html?a=1”,在index.html中使用javascript获取到问号后面的传值,即"a=1",然后就可以得到a的值了。但是,自从android 3.0后,忽然webview就不支持这种方便快捷的功能了,你想在一个activity里向一个html文件传几个参数都十分困难。只要你使用"index.html?XXX"这种方式加载一个静态页面,就会出现找不到该文件的错误,因此不得不采取其他方法给html页面里面传值。
1、首先你得熟悉一个webview的函数addJavascriptInterface(),这个函数可以将你要想传的值传到html页面中去。在使用这个函数之前,你得做两件事。
A) webView.getSettings().setJavaScriptEnabled(true);这个就不需要解释了
B) 在java里面构造一个javascript接口,其实是一个类,这个类可以有几个类属性。这里我构造了一个类:
/** * @description * @author wenfeng * 2012-7-26 */public class HtmlContent {public static String str="";public String getContent(){return str;}public void setContent(String content){str=content;}}2、现在开始往html里面传值:
A) 比如我要将一个服务器的地址传到html里面去,即"http://localhost:8080"这个值html需要得到。这个时候首先将值封装到已经构造好的javascript接口里面去:
String host="http://localhost:8080";HtmlContent hc=new HtmlContent();hc.setContent(url);B) 然后使用上面的那个函数,将这个javascript接口添加到webView里面去。
webView.addJavascriptInterface(hc, "HtmlContent");
C) 最后使用loadurl函数,加载html页面
webView.loadUrl("file:///android_asset/login.html");
3、最后是在html里面如何得到传进来的值
<script language="javascript" type="text/javascript"> var urlContent=window.HtmlContent.getContent(); var host=urlContent; document.write(urlContent); </script>
通过这三个步骤你就可稳稳当当的向html里面传值啦。
注:转载请注明出处,咱要做一个文明的IT人。
- Android 3.0 以上系统 webView 无法在html中传值的解决办法
- android webview中的html代码 @media screen 在低版本系统下显示不正常的解决办法
- Android 6.0以上系统webview的bug
- 部分android手机WebView无法成功同步Cookie问题的解决方案(5.0系统以上)
- Android WebView在4.4版本以上无法获取高度
- android 4.0以上WebView不能全屏播放视频的解决办法
- android 4.0以上WebView不能全屏播放视频的解决办法
- Android 6.0以上系统webview的onReceivedTitle问题
- Popupwindow在Android 7.0以上系统位置显示不对的解决办法
- Android 在webview中 js弹窗无法弹出解决办法
- 关于打包apk后在android 6.0 以上系统无法覆盖安装的坑
- 关于android gallery 在 3.0以上系统出错的问题
- Android 使用Webview无法播放视频问题的解决办法
- Android WebView截取所有内容生成长图在5.0以上系统异常问题
- 在android系统内webview中的html文件之间如何进行数值的传输
- Android截图包含webview时,webview部分空白(其他部分正常),此问题发生在系统4.4及以上
- Android截图包含webview时,webview部分空白(其他部分正常),此问题发生在系统4.4及以上
- Android WebView无法加载本地html文件的解决方法
- Qt构建静态库动态库
- /system/core/
- liunx学习第二天 vim命令
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
- .net 发邮件
- Android 3.0 以上系统 webView 无法在html中传值的解决办法
- 优先级
- hibernate中双向关联在级联情况下save对象讨论
- liunx学习第四天 高级权限
- Javascript开学第一节课
- 使用PL/SQL实现远程连接Oracle数据库
- SimpleAdapter类使用方法
- [探讨]优秀程序员和一般程序员差别在哪?
- PMD校验规则总结