Android - WebView

WebView è una vista che mostra le pagine web all'interno dell'applicazione. È inoltre possibile specificare una stringa HTML e visualizzarla all'interno dell'applicazione utilizzando WebView. WebView trasforma la tua applicazione in un'applicazione web.

Per aggiungere WebView alla tua applicazione, devi aggiungere <WebView>elemento al tuo file di layout xml. La sua sintassi è la seguente:

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/webview"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
/>

Per utilizzarlo, devi ottenere un riferimento di questa vista nel file Java. Per ottenere un riferimento, creare un oggetto della classe WebView. La sua sintassi è:

WebView browser = (WebView) findViewById(R.id.webview);

Per caricare un URL Web in WebView, è necessario chiamare un metodo loadUrl(String url)della classe WebView, specificando l'URL richiesto. La sua sintassi è:

browser.loadUrl("http://www.tutorialspoint.com");

Oltre al solo caricamento dell'URL, puoi avere un maggiore controllo sul tuo WebView utilizzando i metodi definiti nella classe WebView. Sono elencati come segue:

Suor n Metodo e descrizione
1

canGoBack()

Questo metodo specifica che WebView ha un elemento della cronologia precedente.

2

canGoForward()

Questo metodo specifica che WebView dispone di un elemento della cronologia di inoltro.

3

clearHistory()

Questo metodo cancellerà la cronologia avanti e indietro di WebView.

4

destroy()

Questo metodo distrugge lo stato interno di WebView.

5

findAllAsync(String find)

Questo metodo trova tutte le istanze di stringa e le evidenzia.

6

getProgress()

Questo metodo ottiene lo stato di avanzamento della pagina corrente.

7

getTitle()

Questo metodo restituisce il titolo della pagina corrente.

8

getUrl()

Questo metodo restituisce l'URL della pagina corrente.

Se fai clic su qualsiasi collegamento all'interno della pagina web del WebView, quella pagina non verrà caricata all'interno del tuo WebView. Per farlo devi estendere la tua classe daWebViewCliente sovrascrivi il suo metodo. La sua sintassi è:

private class MyBrowser extends WebViewClient {
   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      return true;
   }
}

Esempio

Ecco un esempio che mostra l'uso di WebView Layout. Crea un'applicazione web di base che ti chiederà di specificare un URL e caricherà questo sito web con URL nel WebView.

Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo effettivo su cui è in esecuzione Internet.

Passi Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication.
2 Modifica il file src / MainActivity.java per aggiungere il codice WebView.
3 Modifica res / layout / activity_main per aggiungere i rispettivi componenti XML
4 Modifica il file AndroidManifest.xml per aggiungere le autorizzazioni necessarie
5 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati.

Di seguito è riportato il contenuto del file di attività principale modificato src/MainActivity.java.

package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity  {
   Button b1;
   EditText ed1;

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

      b1=(Button)findViewById(R.id.button);
      ed1=(EditText)findViewById(R.id.editText);

      wv1=(WebView)findViewById(R.id.webView);
      wv1.setWebViewClient(new MyBrowser());

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String url = ed1.getText().toString();

            wv1.getSettings().setLoadsImagesAutomatically(true);
            wv1.getSettings().setJavaScriptEnabled(true);
            wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
            wv1.loadUrl(url);
         }
      });
   }

   private class MyBrowser extends WebViewClient {
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
         return true;
      }
   }
}

Di seguito è riportato il contenuto modificato del file xml res/layout/activity_main.xml.

Nel codice seguente abc indica il logo di tutorialspoint.com
<?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" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView android:text="WebView" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:hint="Enter Text"
      android:focusable="true"
      android:textColorHighlight="#ff7eff15"
      android:textColorHint="#ffff25e6"
      android:layout_marginTop="46dp"
      android:layout_below="@+id/imageView"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignRight="@+id/imageView"
      android:layout_alignEnd="@+id/imageView" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Enter"
      android:id="@+id/button"
      android:layout_alignTop="@+id/editText"
      android:layout_toRightOf="@+id/imageView"
      android:layout_toEndOf="@+id/imageView" />
      
   <WebView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/webView"
      android:layout_below="@+id/button"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentBottom="true" />
      
</RelativeLayout>

Di seguito è riportato il contenuto del file res/values/string.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Di seguito è riportato il contenuto di AndroidManifest.xml file.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Proviamo a eseguire la tua applicazione WebView. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android Studio verrà visualizzato come mostrato di seguito

Ora basta specificare un URL nel campo URL e premere il pulsante di navigazione che appare, per avviare il sito web. Ma prima assicurati di essere connesso a Internet. Dopo aver premuto il pulsante, apparirà la seguente schermata:

Nota. Cambiando semplicemente l'URL nel campo dell'URL, la WebView aprirà il sito Web desiderato.

L'immagine sopra mostra la visualizzazione web di tutorialspoint.com