Application Stopped Webview

Asked

Viewed 93 times

0

I have an app with a WebView, after inserting a code so that it could return to WebViewWhen pressed the close button of the mobile phone an error was detected, but this error ("The Application *** stopped) only appears when clicked back.

Can someone help me? Below the code, first of all I inform that I am beginner in Android.

package brasil500.brasil500;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
//Faz a verificacao da conexao com a internet
//Fim da Verifica��o de conexao com a internet

    private static final String TAG = "MainActivity";

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


        // If a notification message is tapped, any data accompanying the notification
        // message is available in the intent extras. In this sample the launcher
        // intent is fired when the notification is tapped, so any accompanying data would
        // be handled here. If you want a different intent fired, set the click_action
        // field of the notification message to the desired intent. The launcher intent
        // is used when no click_action is specified.
        //
        // Handle possible data accompanying notification message.
        // [START handle_data_extras]
        if (getIntent().getExtras() != null) {
            for (String key : getIntent().getExtras().keySet()) {
                Object value = getIntent().getExtras().get(key);
                Log.d(TAG, "Key: " + key + " Value: " + value);
            }
        }
        // [END handle_data_extras]
















        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final WebView wv = (WebView) findViewById(R.id.webView);
        wv.setWebViewClient(new WebViewClient());
        final WebSettings ws= wv.getSettings();
        ws.setJavaScriptEnabled(true);
        ws.setSupportZoom(false);
        //news implementation
        ws.setSaveFormData(true);
        wv.loadUrl("https://lojasbrasil500.com.br");
        wv.getSettings().setUseWideViewPort(true);
        wv.getSettings().setLoadWithOverviewMode(true);
        wv.setWebChromeClient(new WebChromeClient());


        //Barra de Progress StackOverflow
       /* ProgressDialog progress = new ProgressDialog();
        progress.setMessage("Carregando");
        progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progress.setIndeterminate(true);
        progress.show();*/


        //Barra de Progresso / Carregando
       final ProgressBar Pbar;
        Pbar = (ProgressBar) findViewById(R.id.progressBar);


        wv.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                if (progress < 100 && Pbar.getVisibility() == ProgressBar.GONE) {
                    Pbar.setVisibility(ProgressBar.VISIBLE);
                }
                Pbar.setProgress(progress);
                if (progress == 100) {
                    Pbar.setVisibility(ProgressBar.GONE);

                }
            }
        });
        //Fim da Barra de Progresso / Carregando

        //Verifica se a internet está ativa no aparelho
       /* ConnectivityManager cManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE);
        NetworkInfo ninfo = cManager.getActiveNetworkInfo();
        if(ninfo!=null && ninfo.isConnected()){
            Toast.makeText(this,"Conectado na internet", Toast.LENGTH_LONG).show();
        }else{
                //Caso não tenha internet, Recarrega a SplashScreen
                    Intent i = new Intent(MainActivity.this, splash_screen.class);
                    startActivity(i);
               //Caso não tenha internet, Recarrega a SplashScreen

            Toast.makeText(this,"Sua Internet Precisa estar Ativa. Estamos Tentando conectar...", Toast.LENGTH_LONG).show();
        }
*/

        /* Caso a pagina da web não funciona*/
        wv.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Intent i = new Intent(MainActivity.this, error_webview.class);
                startActivity(i);

            }
        });
         /* Fim:: Caso a pagina da web não funciona*/


        }

//Fecha a Aplicacao Quando pressionar o botao voltar
@Override
public void onBackPressed(){

    if (wv.canGoBack()) {
        wv.goBack();
    } else {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
}
   //Fecha a Aplicacao Quando pressionar o botao voltar

//Volta o Webview quando clicar em volta


//Volta o Webview quando clicar em volta

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
  • Put the exact error (copy from logcat) and if possible indicate on which line of code.

1 answer

0


The error is because you declared a variable of type WebView global, as I indicated in the reply on Back to Webview, but this is not instantiating it. Just below you should remove the final WebView for you to assign a value to your globally declared variable. See:

wv = (WebView) findViewById(R.id.webView);
wv.setWebViewClient(new WebViewClient());
final WebSettings ws= wv.getSettings();
ws.setJavaScriptEnabled(true);
.
.
.
  • And ai Acklay Bele. From what I understand you said to remove the following line: Final Websettings Ws= wv.getSettings(); ?

  • It’s not the line, it’s just final Webview, because in fact you’re already declaring over there onCreate

  • 1

    Oh bro, it worked perfectly. Thank you very much, helped a hobbit on android rs. Vlw Fera.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.