Scambiare dati tra una WebView Android e una pagina HTML

Mattepuffo's logo
Scambiare dati tra una WebView Android e una pagina HTML

Scambiare dati tra una WebView Android e una pagina HTML

Il componente WebView ci permette di visualizzare il contenuto di una pagina web all'interno della nostra app Android.

Oggi vediamo come eseguire un semplice scambio dati; per farlo ovviamente useremo anche Javascript, oltre che a Java.

Cominciamo con la nostra Activity:

package com.mp.test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

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

        WebView webView = findViewById(R.id.webView);
        webView.addJavascriptInterface(new MyJsInterface(this), "Android");
        webView.loadUrl("https://www.sito.it/pagina.html");
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
    }
}

La WebView l'abbiamo inserite nel nostro layout; nulla di complicato.

Vediamo invece la classe che ci fa da "interfaccia":

package com.mp.test;

import android.content.Context;
import android.webkit.JavascriptInterface;
import android.widget.Toast;

public class MyJsInterface {

    Context mContext;

    MyJsInterface(Context c) {
        mContext = c;
    }

    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }

}

Ricordatevi che dovete aggiungere questi permessi nel manifest:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Infine ecco la pagina HTML:

<script>
	function showAndroidToast(toast) {
		Android.showToast(toast);
	}
</script>
<input type="button" value="Say hello" onClick="showAndroidToast('Ciao dal web!')">

Se adesso avviate la app e cliccate sul tasto, vedrete apparire il classico Toast Android.

Ovviamente questo è solo un esempio basico.

Enjoy!


Condividi

Commentami!