Link Tidak Bisa Dibuka di WebView Android

Beberapa hari yang ada keperluan untuk membuat launcher sebuah website berupa aplikasi Android. Sudah pasti yang saya manfaatkan adalah modul WebView Android untuk menampilkan sebuah website, tanpa harus menggunakan browser default dari Smartphone Android.

Kurang lebih script untuk menampilkan website melalui WebView Android sebagai berikut :

package garuda.kreasi.rohs;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

private WebView webv;
private ProgressBar pb_web;
private String webUrl = "URL WEBSITE";
private WebViewClient client;

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Komponen WebView
webv = (WebView) findViewById(R.id.webView);

// Komponen ProgressBar untuk menampilkan loading
pb_web = (ProgressBar) findViewById(R.id.progressBar);

webv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}

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

@Override
public void onPageFinished(WebView codePunkerWebView, String url) {
super.onPageFinished(codePunkerWebView, url);
pb_web.setVisibility(View.GONE);
}
});

webv.getSettings().setJavaScriptEnabled(true);
webv.loadUrl(webUrl);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webv.canGoBack()) {
webv.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

Build project dan testing menjalankan aplikasinya, lancar tidak ada masalah force-close atau sejenisnya. Masalah yang ada dari script diatas hanya satu, link yang ada di website tersebut tidak bisa berpindah halaman / terbuka layaknya jika link normal di-klik. Setelah melakukan banyak percobaan dan membaca dokumentasi alhamdulillah sudah berhasil mengatasi masalah tersebut. Tidak banyak perubahan script yang perlu dilakukan, hanya perlu menambahkan 1 baris yaitu view.loadUrl(url);. Maka script lengkapnya adalah sebagai berikut :

package garuda.kreasi.rohs;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

private WebView webv;
private ProgressBar pb_web;
private String webUrl = "URL WEBSITE";
private WebViewClient client;

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Komponen WebView
webv = (WebView) findViewById(R.id.webView);

// Komponen ProgressBar untuk menampilkan loading
pb_web = (ProgressBar) findViewById(R.id.progressBar);

webv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

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

@Override
public void onPageFinished(WebView codePunkerWebView, String url) {
super.onPageFinished(codePunkerWebView, url);
pb_web.setVisibility(View.GONE);
}
});

webv.getSettings().setJavaScriptEnabled(true);
webv.loadUrl(webUrl);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webv.canGoBack()) {
webv.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

Semoga artikel ini bisa bermanfaat khususnya bagi yang sedang mengalami masalah link tidak bisa dibuka di WebView Android.

Leave a Reply