11、WebView 使用注意问题

 

<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基本使用   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

 

 

 

你可能感兴趣的:(webView)