webview不能正常调用Javascript代码
2015-10-28 09:49
411 查看
webview在4.4版本有重大的变革,在webview中如果使用loadurl()方法,在4.4版本的手机是显示不出来的,它只会执行JavaScript的第一行代码,解决这个问题的方法是换成evaluateJavascript()方法。具体代码如下。
public class MyWebViewClient extends WebViewClient { @SuppressLint("NewApi") @Override public void onPageFinished(WebView view, String url) { // 解决网页图片自适应问题,如果sdk大于19,那么使用evalutejavascript方法 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { view.evaluateJavascript("javascript:var imgs = document.getElementsByTagName('img');for(var i = 0; i<imgs.length; i++){imgs[i].style.width = '100%';imgs[i].style.height = 'auto';}",new ValueCallback<String>() { @Override public void onReceiveValue(String value) { Log.i("MyWebViewClient", "onReceiveValue value=" + value); }}); } else { view.loadUrl("javascript:var imgs = document.getElementsByTagName('img');for(var i = 0; i<imgs.length; i++){imgs[i].style.width = '100%';imgs[i].style.height = 'auto';}"); } } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
相关文章推荐
- ios 微博第三方登录及得到相关参数
- AndroidStudio下加入百度地图的使用 (三)——API基本方法及常量属性
- iOS下PDF文件的浏览和涂鸦效果的简单实现
- ios后台执行不被kill的方法
- Unity3D 自动光照 shader
- GitHub上找到一个ViewPager项目,导入AndroidStudio一直报错Cause: org/gradle/api/publication/maven/internal/DefaultMa
- Android RelativeLayout常用属性介绍
- 《Android开发开放平台》
- Android开发——对sdcard扩展卡文件操作
- iOS使用CoreData实现收藏功能
- iOS开发中常见的数据持久化的方法
- 使用input type=file标签进行文件上传时,在安卓手机中的微信浏览器中不能调起相机,但是在苹果手机中的微信浏览器中可以调用相机。解决办法很简单, <input type="file" nam
- Xcode技巧 - 3
- android项目导包问题的解决方案
- android基础之页面间跳转传值,用Bundle+Intent
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android的TextView使用Html来处理图片显示、字体样式、超链接等
- Android学习笔记:实现下拉刷新的ListView
- ios把按钮切成圆形
- Android判断当前的android设备是否处于联网状态