您的位置:首页 > 移动开发

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: