Android - WebView

WebView é uma visualização que exibe páginas da web dentro de seu aplicativo. Você também pode especificar a string HTML e mostrá-la dentro de seu aplicativo usando o WebView. O WebView transforma seu aplicativo em um aplicativo da web.

Para adicionar WebView ao seu aplicativo, você deve adicionar <WebView>elemento para seu arquivo de layout xml. Sua sintaxe é a seguinte -

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

Para usá-lo, você deve obter uma referência dessa visualização no arquivo Java. Para obter uma referência, crie um objeto da classe WebView. Sua sintaxe é -

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

Para carregar um url da web no WebView, você precisa chamar um método loadUrl(String url)da classe WebView, especificando o url necessário. Sua sintaxe é:

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

Além de apenas carregar o url, você pode ter mais controle sobre seu WebView usando os métodos definidos na classe WebView. Eles estão listados a seguir -

Sr. Não Método e Descrição
1

canGoBack()

Este método especifica que o WebView tem um item de histórico anterior.

2

canGoForward()

Este método especifica que o WebView tem um item de histórico de encaminhamento.

3

clearHistory()

Este método limpará o histórico de avanço e retrocesso do WebView.

4

destroy()

Este método destrói o estado interno do WebView.

5

findAllAsync(String find)

Este método encontra todas as instâncias de string e as destaca.

6

getProgress()

Este método obtém o progresso da página atual.

7

getTitle()

Este método retorna o título da página atual.

8

getUrl()

Este método retorna o url da página atual.

Se você clicar em qualquer link dentro da página da Web do WebView, essa página não será carregada dentro do seu WebView. Para fazer isso, você precisa estender sua aula deWebViewCliente substituir seu método. Sua sintaxe é -

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

Exemplo

Aqui está um exemplo que demonstra o uso do Layout WebView. Ele cria um aplicativo básico da web que solicitará que você especifique um url e carregará esse site de url no WebView.

Para experimentar este exemplo, você precisa executá-lo em um dispositivo real no qual a Internet esteja sendo executada.

Passos Descrição
1 Você usará o Android Studio para criar um aplicativo Android em um pacote com.example.sairamkrishna.myapplication.
2 Modifique o arquivo src / MainActivity.java para adicionar o código WebView.
3 Modifique res / layout / activity_main para adicionar os respectivos componentes XML
4 Modifique o AndroidManifest.xml para adicionar as permissões necessárias
5 Execute o aplicativo e escolha um dispositivo Android em execução, instale o aplicativo nele e verifique os resultados.

A seguir está o conteúdo do arquivo de atividade principal modificado 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;
      }
   }
}

A seguir está o conteúdo modificado do xml res/layout/activity_main.xml.

No seguinte código abc indica o logotipo de 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>

A seguir está o conteúdo do res/values/string.xml.

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

A seguir está o conteúdo de AndroidManifest.xml Arquivo.

<?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>

Vamos tentar executar seu aplicativo WebView. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. O Android Studio será exibido conforme mostrado abaixo

Agora, basta especificar um url no campo url e pressionar o botão de navegação que aparece para abrir o site. Mas antes disso, certifique-se de que você está conectado à internet. Após pressionar o botão, a seguinte tela iria aparecer -

Nota. Alterando apenas o url no campo url, seu WebView abrirá o site desejado.

A imagem acima mostra o webview de tutorialspoint.com