Android開発中のWebViewの簡単な使い方

4482 ワード

前言
WebViewはAndoridでウェブページを表示するものです。次はどうやって使うかを見てみましょう。
一、基本使用
1.声明権限は、WebViewが避けられないようにインターネットを利用して、私たちはインターネットアクセス権限を追加します。

<uses-permission android:name="android.permission.INTERNET"/>
2.Layoutに入れる

<WebView android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/web">
3.Activityで引用する

private WebView webView;
webView = (WebView) findViewById(R.id.web);
webView.loadUrl("http://piaoshu.org");
//webView.loadUrl("file:///android_asset/xx.html");        html
この時、アプリケーションは自動的にシステムまたは第三者ブラウザから飛び出すことができます。つまり、自分のアプリケーションに自分のページを表示できないということです。どうすればいいですか?次にWebViewの2つの重要な傍受事件を紹介します。
二、WebViewCientとWebChromeClientwebView.setWebViewClient()は、主にウェブページプロセスの傍受をロードするために用いられる。

webView.setWebViewClient(new WebViewClient(){
 @Override
 //       ,           
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
  view.loadUrl(url);
  return true;//    true        WebView    ,   false              
 }
 @Override 
 public void onReceivedError(WebView view, int errorCode, 
  String description, String failingUrl) { 
//         ,       .
//     404    ,        html  asset    , webView           。
  } 

  @Override 
  public void onPageStarted(WebView view, String url, Bitmap favicon) { 
   super.onPagStarted(view, url, favicon); 
   //                ,      
  } 

  @Override 
  public void onPageFinished(WebView view, String url) { 
   super.onPageFinished(view, url); 
   //              ,      
  } 
}
);
webView.setWebChromeClient()は、主にウェブページプロセスのUIに対する動作をロードするために用いられる。

webView.setWebChromeClient(new WebChromeClient(){
 @Override
 public void onProgressChanged(WebView view, int newProgress) {
  progressBar.setProgress(newProgress);
//newProgress   1 100   ,            ProgressBar ProgressDialog      
  } 
 }
 @Override
 public void onReceivedTitle(WebView view, String title) { 
  textView.setText(title);//  title      ,     textView   。
 }
}
);
はい、ホームページのロード状況を見に来ました。

ウェブページのロードがとても良いように見えますが、実は私はすでにいくつかの関連属性を設定しました。WebViewにはどのような属性がありますか?
三、WebSettings

WebSettings settings=webView.getSettings();

//  JavaScript  
settings.setJavaScriptEnabled(true);

//  WebView        
settings.setUseWideViewPort(true);

//       
settings.setBuiltInZoomControls(true);

//  WebView            
settings.setLoadWithOverviewMode(true);

//WebView             
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
まだいくつかの属性があります。私は話さないで、興味のある自分で探してみます。
四、ファイルをダウンロードする
webviewにはダウンロードファイルのリンクが含まれている場合があります。リンクをクリックすると、ファイルは現地にダウンロードされます。どうやって実現しますか?システムは私達のためにダウンロードインターフェースDownloadListenerを提供しています。コードは簡単で便利です。
私たちはこのインターフェースを実現し、方法を書き換えて、Intentを通じてシステムのブラウザを呼び出します。

class MyListenter implements DownloadListener{
 @Override
 public void onDownloadStart(String url, String userAgent,        String contentDisposition, String mimetype, long contentLength) {
  Uri uri = Uri.parse(url); //url     
  Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
  startActivity(intent);
 }
}
モニターの設置を忘れないでください。

webView.setDownloadListener(new MyListenter());
私たちは第三者ブラウザを使ってダウンロードしました。これは一番簡単な方法です。
Androidをクリックしてダウンロードします。効果は以下の通りです。

あるいは、私たちはスレッドを書いてダウンロードしてもいいです。onDownloadStart()方法でスレッドを起動すればいいです。具体的なコードは貼りません。
使い方をまとめます。
使用前に権限を説明してください。コントロールの引用はもちろんです。
ポイントはWebView CientとWebChromeClientの2つです。webView.setWebViewClient()は、主にウェブページプロセスをロードするための関連動作である。webView.setWebChromeClient()は、ウェブページプロセスがUIに対する動作をロードするために使用される。
システムはまた、ダウンロードインターフェースDownloadListenerを提供します。
以上がこの文章の全部です。皆さんの勉強や仕事に一定の助けを与えたいです。もし疑問があれば、メッセージを残して交流してもいいです。