anndroid webViewの基本的な使い方

4858 ワード

転送は原文のリンク先を表示してください:www.niwoxuexi.com/blog/android/article/147.html html html html 5はますます火をつけて、webページのappの埋め込みもますます多くなりましたandroid 5.0はWebViewを強化し、android開発におけるWeb開発の地位が高まっていることがわかります.今からandroidのWebViewを勉強します.WebViewの概要:WebViewは、Webページを簡単にappに埋め込むことができ、jsと直接呼び出すこともできます.Webviewには2つの方法があります.setWebChromeClientとsetWebClient setWebClient:主に解析を処理し、Webページをレンダリングするなどのブラウザが行うことを処理します.setWebChromeClient:WebViewがJavaScriptを処理するダイアログボックスを支援し、Webサイトのアイコン、Webサイトtitle、ロードの進捗などWebViewClientはWebViewが各種の通知、要求イベントを処理するのを助けるものです.次はWebViewを使用する際に使用するいくつかの方法と手順をAndroidManifestで説明します.xml設定アクセスネットワーク権限: <uses-permission android:name="android.permission.INTERNET"/>
  • レイアウトファイルにWebViewコントロール
  • を追加ローカル/Webリソースexampleをロードする.htmlはassetsフォルダ内に保存してWebViewのloadUrl()メソッドを呼び出す.ローカルリソースのロードwebView = (WebView) findViewById(R.id.webView); webView.loadUrl("file:///android_asset/example.html");
  • Webリソースのロード:webView = (WebView) findViewById(R.id.webView);webView.loadUrl("http://baidu.com");
  • 3.アクセスしたページにJavascriptがある場合、webviewはJavascript // javascript WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);
  • 四をサポートするように設定する必要があります.ブラウザを終了するのではなく、閲覧するWebページを後退させるには、Web ViewがURLのロードを上書きし、自動的に履歴アクセスレコードを生成する必要があります.これにより、アクセスしたサイトにアクセスまたは後退することができます.//物理キーの書き換え——戻る論理@Override public boolean onKeyDown(int keyCode,KeyEvent event){//TODO Auto-generated method stub if(keyCode=KeyEvent.KEYCODE_BACK){if(webView.canGoBack(){webView.goBack();//前のページreturn true;}Else{System.exit(0);//プログラムを終了}}return super.onKeyDown(keyCode, event); }
  • 5.判断ページロードプロセス//判断ページロードプロセスwebView.setWebChromeClient(new WebChromeClient(){@Override public void onProgressChanged(WebView view,int newProgress){//TODO Auto-generated method stub if(newProgress==100)}//Webロード完了Log.(ロード完了...)"success"); } else{//ロード中Log.d("ロード中...",+newProgress+""); } } });
  • 6:キャッシュの使用優先キャッシュwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);キャッシュを使用しない:webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
  • 下全体のコードxmlファイル
  • MainActivityコード:public class MainActivity extends AppCompatActivity{private WebView;private EditText editText;private Button button;@Override protected void onCreate(Bundle savedInstance State){super.onCreate(savedInstance); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.web_view); editText = (EditText) findViewById(R.id.et_url); button = (Button) findViewById(R.id.btn_search); editText.setText("http://www.baidu.com「);//WebViewを上書きサードパーティまたはシステムのデフォルトブラウザを使用してWebページを開く動作をデフォルトで使用し、WebページをWebViewで開く//この関数を呼び出さないと、デフォルトのブラウザwebView.setWebViewClient(new WebView Client(){@Override public boolean shouldOverrideUrlLoading(WebView,String url)が開きます{//戻り値がtrueの場合はWebViewを開いてfalseに対してシステムブラウザまたはサードパーティブラウザview.loadUrl(url);return true;})を呼び出すように制御します.button.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){String url=editText.getText().toString().toLowerCase();if(TextUtils.isEmpty(url){Toast.makeText(MainActivity.this,『urlは空にできない!』Toast.LENGTH_SHORT).show(); } else { if (!url.startsWith("http://")) { url = "http://"+ url; } webView.loadUrl(url); } } });//ページのロードを判断するプロセスwebView.setWebChromeClient(new WebChromeClient(){@Override public void onProgressChanged(WebView view,int newProgress){//TODO Auto-generated method stub if(newProgress==100)}//Webロード完了Log.(ロード完了...)"success"); } else{//ロード中Log.d("ロード中...",+newProgress+""); } } }); } @Override public boolean onKeyDown(int keyCode,KeyEvent event){if(keyCode==KeyEvent.KEYCODE_BACK){if(webView.canGoBack(){webView.goBack();//前のページreturn trueに戻る;}Else{System.exit(0);//プログラムを終了}}return super.onKeyDown(keyCode, event); }} 最後はdemoダウンロードアドレス