webView使用
1、 概述
Webview就是起到内嵌浏览器的作用
2、 FAQ遇到的问题也比较多
需求是在TV里调用支付宝的url显示他的二维码
Js 不显示 webView.getSettings().setJavaScriptEnabled(true); |
二维码居中(原来是左右两列) webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); |
直接跳到浏览器,嵌套不住 // 防止跑到浏览器界面去 webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { hold.webView.loadUrl(url); return true; } }); |
添加滚动条,加载条 webView.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title); }
@Override public void onProgressChanged(WebView view, int progress) {
if (progress == 100) { progressBar.setVisibility(View.GONE); } super.onProgressChanged(view, progress); }
}); |
加载html文件 webView.loadUrl("file:///android_asset/a.html");
|
html的字符串不行。因为有js渲染(背景渲染不出来) webView.loadDataWithBaseURL(null, htmlString, "text/html", "utf-8", null); 解决: webView.loadData(URLEncoder.encode(htmlString, "utf-8"), "text/html", "utf-8"); |
|
没有配置这些 直接加载 http://baidu.com 居然会是白色 webView.getSettings().setJavaScriptEnabled(true);//支持jsp webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);//适应屏幕,单列居中 webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLoadWithOverviewMode(true); webView.setFocusable(false); webView.setHorizontalScrollBarEnabled(false); webView.setVerticalScrollBarEnabled(false); webView.getSettings().setDefaultTextEncodingName("utf-8");
// 防止Uncaught TypeError: Cannot call method webView.getSettings().setDomStorageEnabled(true);
// 防止跑到浏览器界面去 webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { hold.webView.loadUrl(url);
returntrue; } });
// 此处能拦截超链接的url,即拦截href请求的内容. webView.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title); }
@Override public void onProgressChanged(WebView view, int progress) {
if (progress == 100) { progressBar.setVisibility(View.GONE); } super.onProgressChanged(view, progress); }
});
|