Android Webview Javascript Download File

4 min read Jun 22, 2024
Android Webview Javascript Download File

Mengunduh File Menggunakan JavaScript di Android WebView

Android WebView memungkinkan Anda untuk menampilkan konten web di dalam aplikasi Android Anda. Seringkali, Anda mungkin ingin mengizinkan pengguna untuk mengunduh file dari halaman web yang dimuat di WebView. Artikel ini akan membahas bagaimana Anda dapat mengunduh file dari WebView menggunakan JavaScript.

Menggunakan window.open()

Salah satu cara untuk mengunduh file dari WebView adalah dengan menggunakan metode window.open() dalam JavaScript. Anda dapat membuka URL file dalam jendela baru dengan target "_blank", yang akan membuka file di browser perangkat pengguna.

Berikut adalah contoh kode JavaScript untuk mengunduh file:

function downloadFile(url) {
  window.open(url, '_blank');
}

Anda dapat memanggil fungsi downloadFile() dengan URL file yang ingin Anda unduh sebagai argumen.

Mengelola Unduhan dengan download() API

Mulai dari Chrome 75, browser Chrome memperkenalkan API download() yang memberikan kontrol lebih besar terhadap unduhan file dari JavaScript.

Berikut adalah contoh kode JavaScript untuk mengunduh file menggunakan API download():

function downloadFile(url, filename) {
  const link = document.createElement('a');
  link.href = url;
  link.download = filename;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

Kode ini membuat elemen a baru, menetapkan URL file ke atribut href, dan mengatur nama file untuk atribut download. Kemudian, elemen a diklik, yang memicu unduhan. Terakhir, elemen a dihapus dari DOM.

Menangani Permintaan Unduhan di Android

Untuk mengizinkan pengguna mengunduh file dari WebView di aplikasi Android Anda, Anda perlu menangani permintaan unduhan.

1. Menerima Permintaan Unduhan:

Anda dapat mendeteksi permintaan unduhan dengan mendengarkan event onPageFinished di WebView Anda. Di dalam event ini, Anda dapat menggunakan metode evaluateJavascript() untuk menjalankan JavaScript yang memeriksa apakah ada permintaan unduhan yang sedang berlangsung.

webView.setWebViewClient(new WebViewClient() {
  @Override
  public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    view.evaluateJavascript("document.readyState",
        new ValueCallback() {
          @Override
          public void onReceiveValue(String value) {
            if (value.equals("complete")) {
              // Periksa apakah ada permintaan unduhan
              // ...
            }
          }
        });
  }
});

2. Mengunduh File:

Jika ada permintaan unduhan, Anda dapat mengunduh file menggunakan kelas DownloadManager di Android.

// Buat permintaan DownloadManager
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(fileUrl));

// Atur nama file dan direktori unduhan
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);

// Mulai unduhan
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
long downloadId = downloadManager.enqueue(request);

Kesimpulan

Dengan menggunakan JavaScript dan API DownloadManager di Android, Anda dapat dengan mudah menambahkan fungsionalitas unduhan ke aplikasi Android Anda yang menggunakan WebView. Ingat untuk menangani permintaan unduhan dengan benar dan memberikan pengalaman pengguna yang baik saat mengunduh file.

Related Post


Latest Posts