Android : Menampilkan Progress Dialog saat membuka URL pada WebView | M Reza Faisal

reza

full-time(software-developer,lecturer); part-time(traveller, food-tester);

Android : Menampilkan Progress Dialog saat membuka URL pada WebView

Mar 12, 2014 by     2 Comments    Posted under: I am Software Developer

WebView adalah pilihan yang sering digunakan (oleh saya) jika sedang mengerjakan aplikasi mobile untuk beberapa platform. Atau WebView adalah pilihan yang sering digunakan (oleh saya lagi) jika mengerjakan aplikasi mobile pada platform yang kurang dikuasai (kurang disukai #eh).

Contohnya pada kasus mengerjakan aplikasi pada platform Androjid … eh … Android :P

WebView adalah salah satu kontrol yang terdapat pada platform ini, control ini berfungsi seperti frame yang berfungsi sebagai web browser sederhana yang akan menampilkan halaman web.  Agar halaman web tetap terlihat seperti aplikasi native di android dapat dilakukan beberapa cara yaitu dengan menggunakan HTML 5 dan penggunakan library seperti jQuery Mobile agar terlihat fungsi touch yang biasa ada pada aplikasi native juga masih bisa dirasakan pada halaman web yang ditampilkan pada WebView.

Pada halaman web terdapat tombol, link atau aksi yang mengakibatkan diantarkan ke halaman berikutnya atau aksi yang mengakibatkan halaman dimuat ulang. Pada WebView, proses ini akan membuat “seperti tidak terjadi apa-apa” kita link atau tombol diklik, dan setelah beberapa saat kemudian baru halaman langsung berubah tampilannya. Nah hal ini memungkinkan aplikasi seperti “freeze” atau terlihat tidak ada respon.  Untuk menangani hal itu maka kita bisa tampilkan Progress Dialog selama proses memuat halaman tersebut.

Artinya setiap ada aksi memuat (loading) halaman yang disebabkan karena link diklik untuk pindah halaman atau yang lain, maka akan ditampilkan Progress Dialog. Hal ini juga merupakan salah satu cara agar halaman web pada WebView terlihat sebagai aplikasi native :P

Kode berikut ini adalah contoh kode Java pada Android untuk menampilkan WebView dan menampilkan halaman web yang diinginkan pada WebView tersebut.

package com.example.eletter;

import android.os.Bundle;import android.app.Activity;import android.view.Window;import android.webkit.WebView;import android.webkit.WebViewClient;

public class Tab1Activity extends Activity {

    public static WebView webView;

    @Override     public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.tab1_layout);

        webView = (WebView) findViewById(R.id.webView1);        webView.getSettings().setJavaScriptEnabled(true);        webView.setWebViewClient(new WebViewClient());        webView.loadUrl("http://www.google.com");        webView.reload();    }

}

 

Nah untuk membuat agar saat setiap link pada web yang ada WebView akan menampilkan Progress Dialog maka kode di atas dapat diganti menjadi seperti berikut ini :

package com.example.eletter;

import android.os.Bundle;import android.app.Activity;import android.app.ProgressDialog;import android.view.Window;import android.webkit.WebView;import android.webkit.WebViewClient;

public class Tab1Activity extends Activity {

    public static WebView webView;

    @Override     public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.tab1_layout);

        webView = (WebView) findViewById(R.id.webView1);        webView.getSettings().setJavaScriptEnabled(true);        webView.setWebViewClient(new WebViewClient());        webView.loadUrl("http://www.google.com");    }

    private void startWebView(String url) {        webView.setWebViewClient(new WebViewClient() {                  ProgressDialog progressDialog;

            public boolean shouldOverrideUrlLoading(WebView view, String url) {                              view.loadUrl(url);                return true;            }

            public void onLoadResource (WebView view, String url) {                if (progressDialog == null) {                    progressDialog = new ProgressDialog(Tab1Activity.this);                    progressDialog.setMessage("Loading...");                    progressDialog.show();                }            }            public void onPageFinished(WebView view, String url) {                try{                if (progressDialog.isShowing()) {                    progressDialog.dismiss();                    progressDialog = null;                }                }catch(Exception exception){                    exception.printStackTrace();                }            }

        }); 

         webView.getSettings().setJavaScriptEnabled(true); 

        webView.loadUrl(url);    }}

 

Hasilnya :

image

image

Selamat mencoba Smile

2 Comments + Add Comment

Leave a comment to dezy

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Fotolia

Fotolia

ShutterStock


Fotolia
© 2013 eSevens
%d bloggers like this: