Programming/Android

안드로이드 WebView Progressbar

Min 2017. 3. 16. 16:43



maifest.xml에서 권한설정을 해줍니다


(uses permission)



01.<?xml version="1.0" encoding="utf-8"?>
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03.android:layout_width="fill_parent"
04.android:layout_height="fill_parent"
05.android:orientation="vertical" >
06. 
07.<FrameLayout
08.android:layout_width="fill_parent"
09.android:layout_height="fill_parent" >
10. 
11.<WebView
12.android:id="@+id/web"
13.android:layout_width="fill_parent"
14.android:layout_height="fill_parent" />
15. 
16.<ProgressBar
17.android:id="@+id/web_progress"
18.android:layout_width="wrap_content"
19.android:layout_height="wrap_content"
20.android:layout_gravity="center"
21.android:visibility="gone" />
22.</FrameLayout>
23. 
24.</LinearLayout>


01.package kr.android.web.progressbar;
02. 
03.import android.app.Activity;
04.import android.os.Bundle;
05.import android.content.Context;
06.import android.graphics.Bitmap;
07.import android.net.ConnectivityManager;
08.import android.net.NetworkInfo;
09.import android.view.KeyEvent;
10.import android.view.View;
11.import android.webkit.WebView;
12.import android.webkit.WebViewClient;
13.import android.widget.ProgressBar;
14.import android.widget.Toast;
15. 
16.public class ProgressBarDemo1 extends Activity {
17.private WebView web;
18.private ProgressBar progress;
19. 
20.@Override
21.public void onCreate(Bundle savedInstanceState) {
22.super.onCreate(savedInstanceState);
23. 
24.ConnectivityManager cm =
25.(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
26. 
27.NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
28.boolean isWifiConn = ni.isConnected();
29. 
30.ni = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
31. 
32.boolean isMobileConn = ni.isConnected();
33. 
34.if (!isWifiConn && !isMobileConn) {
35.Toast.makeText(this"인터넷에 접속되어 있지 않습니다!", Toast.LENGTH_SHORT)
36..show();
37.finish();//액티비티 종료
38.else {
39.setContentView(R.layout.main);
40. 
41.progress = (ProgressBar) findViewById(R.id.web_progress);
42. 
43.web = (WebView) findViewById(R.id.web);
44.web.getSettings().setJavaScriptEnabled(true);
45.web.getSettings().setBuiltInZoomControls(true);
46.web.setHorizontalScrollbarOverlay(true);
47.web.setVerticalScrollbarOverlay(true);
48. 
49.web.loadUrl("http://raysoda.com");
50. 
51.web.setWebViewClient(new WebViewClient() {
52.// 링크 클릭에 대한 반응
53.@Override
54.public boolean shouldOverrideUrlLoading(WebView view, String url) {
55.view.loadUrl(url);
56.return true;
57.}
58. 
59.// 웹페이지 호출시 오류 발생에 대한 처리
60.@Override
61.public void onReceivedError(WebView view, int errorcode,
62.String description, String fallingUrl) {
63.Toast.makeText(ProgressBarDemo1.this,
64."오류 : " + description, Toast.LENGTH_SHORT).show();
65.}
66.// 페이지 로딩 시작시 호출
67.@Override
68.public void onPageStarted(WebView view,String url , Bitmap favicon){
69.progress.setVisibility(View.VISIBLE);
70.}
71.//페이지 로딩 종료시 호출
72.public void onPageFinished(WebView view,String Url){
73.progress.setVisibility(View.GONE);
74.}
75.});
76.}
77.}
78.public boolean onKeyDown(int keyCode, KeyEvent event){
79.if(keyCode ==KeyEvent.KEYCODE_BACK && web.canGoBack()){
80.web.goBack();
81.}else if(keyCode ==KeyEvent.KEYCODE_BACK && !web.canGoBack()){
82.Toast.makeText(this"프로그램 종료!!", Toast.LENGTH_SHORT).show();
83.finish();
84.}
85.return true;
86.}
87.}


출처 : http://gusfree.tistory.com/746