Cara Download Gambar Dari WebView Dengan Menekan Lama Di Aplikasi Android

Tutorial Cara Download Gambar Dari Webview Di Android Studio

Halo android programmer, bagaimana kabar kalian semua hari ini? Saya harap kalian semua dalam keadaan yang baik-baik saja. Sebelumnya, saya sudah pernah membagikan tutorial tentang bagaimana cara membuat aplikasi web menggunakan webview di android studio. Pada tutorial tersebut, kalian telah belajar cara membuat aplikasi android yang menampilkan antar muka dari suatu website tetapi kalian tidak bisa mendownload gambar yang ada pada website tersebut. Pada kesempatan kali ini saya akan membagikan tutorial cara menyimpan atau download gambar dari aplikasi webview dengan cara menekan lama di aplikasi android.

Seperti yang telah saya jelaskan sebelumnya bahwa WebView adalah widget yang sangat keren sekali. Kenapa? karena hanya menggunakan kode yang sedikit saja, kita sudah berhasil membuat aplikasi android yang bisa menampilkan website. Banyak perusahaan yang membuat website mereka ketika ingin mengubah menjadi aplikasi mobile cukup menggunakan webview saja. WebView ini jika kita perdalam, maka kita bisa menyimpan atau download gambar yang ada pada website tersebut.

Jadi, pada tutorial ini kalian akan belajar cara menyimpan atau download gambar yang ada pada webview di aplikasi android.

- Advertisement -

Tutorial Cara Menyimpan atau Download Gambar Dari WebView Dengan Menekan Lama Di Android Studio

Buatlah project android studio baru dengan informasi sebagai berikut:

Application Name:Web App
Package Name:com.androidrion.webapp
Languge:Java
Minimum SDK:API 15: Android 4.0.3 (IceCreamSandwich)

Daftar file xml layout yang digunakan dalam project ini:

  1. activity_main.xml

Daftar file java class yang digunakan dalam project ini:

  1. MainActivity.java

Dibawah ini adalah langkah-langkah dalam pembuatan aplikasi Web App.

XML Layout File

Buka file activity_main.xml dalam folder layout pada project android studio kalian. Tambahkan widget WebView di dalam RelativeLayout. Berikut ini adalah kode lengkap untuk file activity_main.xml

app/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true" />

</RelativeLayout>

Drawable File

Dalam tutorial ini, saya menggunakan ikon vector drawable material design. Untuk itu, tambahkan ikon dibawah ini.

Ikuti tutorial dibawah ini untuk menambahkan ikon ke dalam project android studio.

CARA MENAMBAHKAN IKON MATERIAL KE DALAM PROJECT ANDROID STUDIO

Java Class File

Buka file MainActivity dalam folder java dan tambahkan kode di bawah ini untuk membuat aplikasi bisa menampilkan website dan download gambar dengan cara menekan lama. Berikut ini adalah kode lengkap untuk file MainActivity.java

app/java/com.androidroin.webapp/MainActivity.java

package com.androidrion.webapp;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.app.DownloadManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.URLUtil;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import java.util.Objects;

public class MainActivity extends AppCompatActivity {

    WebView myWeb;

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

        myWeb = findViewById(R.id.webView);
        myWeb.setWebViewClient(new WebViewClient());
        myWeb.loadUrl("https://androidrion.com");
        WebSettings webSettings = myWeb.getSettings();
        webSettings.setJavaScriptEnabled(true);

        registerForContextMenu(myWeb);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        final WebView.HitTestResult hitTestResult = myWeb.getHitTestResult();

        if (hitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE ||
                hitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {

            menu.setHeaderTitle("Download Gambar");
            menu.setHeaderIcon(R.drawable.ic_file_download);
            menu.add(0, 1, 0, "Download").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem menuItem) {
                    String DownloadGambar = hitTestResult.getExtra();
                    if (URLUtil.isValidUrl(DownloadGambar)) {
                        DownloadManager.Request mRequest = new DownloadManager.Request(Uri.parse(DownloadGambar));
                        mRequest.allowScanningByMediaScanner();
                        mRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                        DownloadManager mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                            Objects.requireNonNull(mDownloadManager).enqueue(mRequest);
                        }
                        Toast.makeText(MainActivity.this, "Gambar sukses di unduh", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(MainActivity.this, "Gambar gagal di unduh", Toast.LENGTH_LONG).show();
                    }
                    return false;
                }
            });
        }
    }
}

Manifest File

Karena pada aplikasi ini kita akan membuka suatu website, maka dari itu kita harus menambahkan permission pada project ini. Tambahkan permission INTERNET pada file AndroidManifest.xml dalam folder manifests. Berikut ini adalah kode lengkap untuk file AndroidManifest.xml

app/manifests/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidrion.webapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Run Project

Sekarang jalankan project Web App pada aplikasi android studio kalian. Jika kode diatas tidak terjadi error, maka aplikasi akan terlihat seperti pada gambar di bawah ini.

AKHIR KATA

Itulah tadi tutorial singkat dan mudah cara download gambar dari webview di aplikasi android. Tutorial di atas sangatlah mudah untuk dikerjakan karena kita hanya memerlukan kode yang tidak banyak untuk membuat aplikasi menampilkan webview serta download gambar dengan cara menekan lama di android studio.

Jika kalian mengalami kendala saat melakukan tutorial di atas, silahkan komentar di bawah artikel ini. Jangan lupa untuk like dan subscribe Channel YouTube Android Rion. Semoga artikel ini membantu kalian. Terima Kasih.

- Advertisement -

Get real time updates directly on you device, subscribe now.

You might also like

- Advertisement -

Leave A Reply

Your email address will not be published.