<WebView
android:id="@+id/webview"
android:background="@color/white"
android:layout_width="fill_parent"
android:layout_height="180dp"
android:layout_margin="5dp" />
// 访问网络权限
<uses-permission android:name="android.permission.INTERNET" />
webview.getSettings().setJavaScriptEnabled(true);
//自适应屏幕
webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setLoadWithOverviewMode(true);
//支持缩放
webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.loadUrl(“”); // 加载网页
webview.setWebViewClient(new MyWebViewClient()); // 不写这个,有可能部分网页加载不出来
class MyWebViewClient extends WebViewClient {
@Override
// 在WebView中而不是默认浏览器中显示页面
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
WebView可直接指定URL显示网页:webView.loadUrl("http://www.baidu.com");
WebView可直接装载HTML代码 :
webView.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", historyUrl);
JavaScript可以调用Java方法,互相传递数据
webView.addJavascriptInterface(new Object() {
public void move(int x, int y) {
... ...
}
}, "demo");
点击页面按钮得到的Url连接地址。
1 class MyWebViewClient extends WebViewClient { 3 @Override // 点击页面按钮得到的Url连接地址。 4 public boolean shouldOverrideUrlLoading(WebView view, String url) { 8 if (url.equals(WebUrl.ExitLogin)) { // 如果定义的地址和得到的地址相同 9 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); 10 dialog.setTitle(getResources().getText(R.string.main_title)); 11 dialog.setMessage(getResources().getText(R.string.main_message)); 12 dialog.setNegativeButton(getResources().getText(R.string.main_cancel), 13 new DialogInterface.OnClickListener() { 14 @Override 15 public void onClick(DialogInterface dialog, int which) { 16 dialog.dismiss(); 17 } 18 }); 19 dialog.setPositiveButton(getResources().getText(R.string.main_ok), 20 new DialogInterface.OnClickListener() { 21 @Override 22 public void onClick(DialogInterface dialog, int which) { 23 .............30 } 31 }); 32 33 dialog.show(); 35 } else { 36 view.loadUrl(url); 37 } 39 return true; 40 }
webview.setWebViewClient(new MyWebViewClient());
获取页面弹出的对话框,可以获取对话框的内容 message。
webview.setWebChromeClient(new WebChromeClient() {
@Override // 获取页面弹出的对话框,可以获取对话框的内容 message。
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (!TextUtils.isEmpty(message)) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle(getResources().getText(R.string.main_title));
dialog.setMessage(getResources().getText(R.string.main_message));
dialog.setNegativeButton(getResources().getText(R.string.main_cancel),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.setPositiveButton(getResources().getText(R.string.main_ok),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
..........
}
});
dialog.show();
}
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message,
JsResult result) {
return true;
}
});
获取(网)页面弹出的对话框。
webview.setWebChromeClient(new WebChromeClient() {
@Override // 获取页面弹出的对话框,可以获取对话框的内容 message。
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (!TextUtils.isEmpty(message)) {
Log.i("tag", "onJsAlert..." + message);
return false;
}
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return true;
}
});
WebView加载网页开始 ------- 网页加载完成,现在进度条。
1 class MyWebViewClient extends WebViewClient { 2 3 @Override 4 public void onPageStarted(WebView view, String url, Bitmap favicon) { 5 super.onPageStarted(view, url, favicon); 6 7 progress.setVisibility(View.VISIBLE); 8 textview.setVisibility(View.VISIBLE); 9 } 10 11 @Override 12 public void onPageFinished(WebView view, String url) { 13 super.onPageFinished(view, url); 14 15 progress.setVisibility(View.GONE); 16 textview.setVisibility(View.GONE); 17 } 18 19 @Override // 点击页面按钮得到的Url连接地址。 20 public boolean shouldOverrideUrlLoading(WebView view, String url) { 22 Log.i("tag", "MyWebViewClient..." + url); 23 24 if (url.equals(WebUrl.ExitLogin)) { ........... 60 } else { 61 view.loadUrl(url); 62 } 64 return true; 65 } 67 }
WebView缓存清除
webview.clearCache(true);
webview.clearHistory();
webview.clearFormData();
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
http://www.eoeandroid.com/thread-66479-1-1.html
Android安全开发之WebView中的地雷
http://www.devdiv.com/Android-android_webview_-thread-218274-1-1.html
WebView基本使用 http://www.cnblogs.com/mengdd/archive/2013/03/01/2938295.html
Android WebView常见问题及解决方案汇总 http://www.cnblogs.com/lee0oo0/p/4026774.html
Android WebView使用总结 http://blog.csdn.net/hknock/article/details/8560490
网页启动Activity,网页传值Activity http://www.cnblogs.com/androidsj/p/4527868.html
开源浏览器:http://www.apkbus.com/android-44306-1-1.html
webkit for android http://www.cnblogs.com/Caiqinghua/archive/2011/05/04/2036864.html