Android 解决WebView调用loadData()方法显示乱码的问题
Android 解决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_COLUMN); mWebView.getSettings().setDefaultTextEncodingName("UTF-8"); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); mWebView.getSettings().setSupportZoom(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.getSettings().setAllowFileAccess(true); mWebView.getSettings().setUseWideViewPort(true); mWebView.getSettings().setBuiltInZoomControls(true); mWebView.getSettings().setLoadWithOverviewMode(true); mWebView.requestFocus(); mWebView.loadUrl(url); mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); } @Override public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } @Override public void onPageStarted(WebView view, String url, android.graphics.Bitmap favicon) { }; @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } }); }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android 中ViewPager中使用WebView的注意事项
Android 中ViewPager中使用WebView的注意事项 前言: 今天在做项目时遇到了一个小问题 首先使用ViewPager显示多个页面,然后在每个页面上使用Fragment显示数据,其中有一部分数据是通过WebView加载的Html标签. 具体xml布局如下 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.andr
-
Android studio点击跳转WebView详解
本文实例为大家分享了Android studio点击跳转WebView的具体代码,供大家参考,具体内容如下 代码文件 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.
-
Android的WebView与H5前端JS代码交互的实例代码
前段时间项目有深度和前端对接过,也是碰了一些坑,现在有时间就拿出来分享下 JS调用原生不外乎就两种,一种是传假的url,也就是url拦截的方式,类似于下面这种: //js代码 function sendCommand(param){ var url="js-call://"+param; document.location = url; } sendCommand("PlaySnake"); //Java代码 mWebView.setWebViewClient(ne
-
详解Android WebView的input上传照片的兼容问题
问题 前几天接到的一个需求,是关于第三方理财产品的H5上传照片问题. 对方说他们的新的需求,需要接入方配合上传资产照片的需求,测试之后发现我们这边的app端,IOS端上传没有问题,而Android端则点击没有任何反应. 对方H5调用的方式是通过<input type='file' accept='image/*'/>的方式调用,本来以为这个问题很简单,就是app端没有设置相机权限,造成的点击无反应情况,而实际上加了之后发现,并非简单的权限问题. 解决问题 因为Android的版本碎片问题,很多
-
Android webview实现拍照的方法
Android webview实现拍照的方法 1. html <div id="pnlVideo1"> <input type="hidden" name="imgNric1" id="imgNric1" /> <label id="nric" class="control-label labelfont" style="color:#888;fo
-
Android webview 内存泄露的解决方法
Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递getApplicationContext. 1.避免在xml直接写webview控件,这样会引用activity,所以在xml写一个LinearLayout,然后 linearLayout.addView(new MyWebview(getApplicati
-
Android webview手动校验https证书(by 星空武哥)
有些时候由于Android系统的bug或者其他的原因,导致我们的webview不能验证通过我们的https证书,最明显的例子就是华为手机mate7升级到Android7.0后,手机有些网站打不开了,而更新了webview的补丁后就没问题了,充分说明系统的bug对我们混合开发webview加载https地址的影响是巨大的.那么我们怎么去解决这个问题呢? 首先我们去分析一下出现的原因 当webview加载https地址的时候,如果因为证书的问题出错的时候就会走onReceivedSslError()
-
Android APP之WebView校验SSL证书的方法
Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点.SSL错误的处理方式十分关键,如果处理不当,可能导致中间人攻击,黑客窃听数据,进而引发安全事故. 严谨地处理onReceivedSslError尤为重要.请参考以下代码,原理是:如果webview报告SSL错误,程序将会对服务器证书进行强校验,如果服务器传入证书的指纹(sha256)与记录值一致,说
-
Android 解决WebView调用loadData()方法显示乱码的问题
Android 解决WebView调用loadData()方法显示乱码的问题 第一步: mWebView.getSettings().setDefaultTextEncodingName("UTF-8"); 第二步: mWebView.loadData(data, "text/html; charset=UTF-8", null); WebView常用配置: private void initWebView() { mWebView.getSettings().se
-
Android 解决WebView多进程崩溃的方法
问题 在android 9.0系统上如果多个进程使用WebView需要使用官方提供的api在子进程中给webview的数据文件夹设置后缀: WebView.setDataDirectorySuffix(suffix); 否则将会报出以下错误: Using WebView from more than one process at once with the same data directory is not supported. https://crbug.com/558377 1 com.a
-
Android 解决WebView无法上传文件的问题
Android 解决WebView无法上传文件的问题 Android原生的WebView并不支持上传文件,需要我们自己实现相应的方法.于是我把工作中的相关代码记录下来.下次直接拿来用就行了.一点一滴都是经验. 1.需要定义三个变量 private ValueCallback<Uri[]> uploadMessageAboveL; private final static int FILE_CHOOSER_RESULT_CODE = 10000; private ValueCallback<
-
浅谈Android解决65535问题的方法
Error:Error converting bytecode to dex: Cause: com.android.dex.DexIndexOverflowException: Cannot merge new index 66125 into a non-jumbo instruction! Android应用以DEX文件的形式存储字节码文件,在Dalvik字节码规范里,方法引用索引method referenceindex只有16位,即65536个.dex里方法只能索引65536个 因为项
-
Android中 webView调用JS出错的解决办法
问题 webView调用JS出错. 复制代码 代码如下: class TestJS { ...... public TestJS(){ } public void save(String data){ webView.loadUrl("javascript: alert(" + data +")"); } ..
-
Android用webView包装WebAPP方法
前言 Android webView 兼容体验真的差到了极点!! 前一阵子,老板要将 WebAPP 放到 Android 和 iOS 里面,而我因为以前做过安卓,所以这方面就由我来打包,原理是很简单的,就是打开 APP 的时候用 webView 加载网站的网址,这样服务器一次更新,就能更新微信版, iOS 版和 Android 版; 首先我要说一句,如果你的 WebAPP 里面有文件上传,并且想要完全兼容,那么就别用原生的 WebAPP, 后面我会写一个关于 crossWalk 的博客,不过在此
-
关于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", "u
-
android 指纹识别调用实现方法及示例代码
activity_main.xml源码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="
-
解决webview调用goBack()返回上一页自动刷新闪白的情况
问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现. 试了好多网上的方法,发现都是扯淡. 后来意识到,webView 有缓存存在着缓存模式,怎么用不同的缓存模式呢? //设置缓存模式 webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 需要把模式改成LOAD_NO_CACHE!! 但是每次都得重新请求很费资源,于是可以放在onK
-
android 指纹识别调用实现方法及示例代码
activity_main.xml源码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="
随机推荐
- 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法
- 日历显示读出输入的年月的java代码
- asp.net使用jQuery获取RadioButtonList成员选中内容和值示例
- javascript图片预览和上传(兼容IE)
- js动态生成指定行数的表格
- thinkphp3.x连接mysql数据库的方法(具体操作步骤)
- Python map和reduce函数用法示例
- Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化第1/2页
- 浅谈js的html元素的父节点,子节点
- PHP查看SSL证书信息的方法
- Ajax开始准备篇
- 基于JavaMail的常用类详细介绍
- jQuery实现右键菜单、遮罩等效果代码
- 微信小程序 生命周期和页面的生命周期详细介绍
- wamp2.2e 64位 curl 开启不了的解决办法
- C语言实现txt数据读入内存/CPU缓存实例详解
- C#编程实现取整和取余的方法
- php对接java现实加签验签的实例
- Android Studio 3.0的下载安装教程
- 微信跳一跳php代码实现