关于Android WebView的loadData方法的注意事项分析

loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f 。

可以使用以下两种代码,data为string类型的html代码

1、webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html",  "utf-8");

这样一些背景效果什么的都不怎么好看了。不推荐。

2、webView.loadDataWithBaseURL(null,data, "text/html",  "utf-8", null);

这样就会完美解析了。

时间: 2024-09-20 14:26:06

关于Android WebView的loadData方法的注意事项分析的相关文章

关于Android WebView的loadData方法的注意事项分析_Android

loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码.需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f .可以使用以下两种代码,data为string类型的html代码1.webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html",  "u

Android WebView的使用方法及与JS 相互调用

Android WebView的使用方法及与JS 相互调用 1.添加网络权限 <uses-permission android:name="android.permission.INTERNET" /> 2.WebSettings 对访问页面进行设置. WebView mWebView = new WebView(this); WebSettings webSettings = mWebView .getSettings();//支持获取手势焦点,输入用户名.密码或其他 m

Android WebView的使用方法总结

Android WebView的使用方法 Android app打开H5页一般要实现如下需求: 1.打开指定url网页: 2.点击链接可以跳转到下一页,并更新标题: 3.按back键或左箭头可以返回上一页: 4.当webview显示的是第一级url时, 按返回键或左箭头关闭当前界面: 5.WebView如何传值给android, 例如使用H5登录成功后返回姓名.token等等字段. 6.支持JavaScript, 支持显示js对话框. 7.无网络时显示默认布局, 以提高用户体验. 8.避免Web

解决WebView调用loadData()方法显示乱码的问题

第一步: mWebView.getSettings().setDefaultTextEncodingName("UTF-8"); 第二步: mWebView.loadData(data, "text/html; charset=UTF-8", null); WebView常用配置: private void initWebView() { mWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE

Android webView shouldOverrideUrlLoading 方法不执行

问题描述 Android webView shouldOverrideUrlLoading 方法不执行 在android 版本4.4.4以上会执行,测试的4.2.2,4.1.2机器上不会执行: 我要实现的逻辑是点击webview上已经加载好的内容,在shouldOverrideUrlLoading 那里拿到链接地址新开Activity用webview加载,不知道有没有能人异士可以提供解决方案. 解决方案 自己解决了,比较麻烦. 解决方案二: android WebView shouldOverr

andrid-android WebView的canGoBack()方法一直返回true

问题描述 android WebView的canGoBack()方法一直返回true 如题,一个页面上使用webview.canGoBack来判断是否能回退网页,如果可以的话,则执行goBack:如果不行的话,则finish该activity. 但是发现WebView中的网页明明前面没有页面了,判断webView.canGoBack时还是返回true,而执行goBack()时,只是重新刷新这个网页.请问是为什么? 解决方案 这个html页面是不是你自己写的?如果不是,看看上一个页面是不是有重定向

android-Android webview 调用java方法如果参数多了 怎么放呢?

问题描述 Android webview 调用java方法如果参数多了 怎么放呢? 这种方法不行 解决方案 Android Webview中调用本地java方法Android的Webview中,javascript如何调用java方法Android的Webview中,javascript如何调用java方法 解决方案二: onclick="javascript:rec('xxx', xxx, ...)" 解决方案三: 看你传的数据应该是一个对象里面的东西,你可以用gson的tojson

Android WebView启动Chromium渲染引擎的过程分析

 首先感谢罗升阳的分享,原文链接http://blog.csdn.net/Luoshengyang/article/details/53237189   Android WebView加载了Chromium动态库之后,就可以启动Chromium渲染引擎了.Chromium渲染引擎由Browser.Render和GPU三端组成.其中,Browser端负责将网页UI合成在屏幕上,Render端负责加载网页的URL和渲染网页的UI,GPU端负责执行Browser端和Render端请求的GPU命令.本文

Android webview使用方法总结

Android webview使用方法总结 这里对Android webview的几种用法进行了总结,提供了九种用法,都要简单实例,大家可以参考下: 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url