Autore Topic: Webview reload pagina corrente e aprire link nel browser..  (Letto 1265 volte)

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Webview reload pagina corrente e aprire link nel browser..
« il: 03 Marzo 2011, 18:08:08 CET »
0
Ciao, come faccio a ricaricare la pagina corrente?
Codice: [Seleziona]
package it.mio;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;

public class Browser extends Activity{
        WebView mWebView;
    @Override
    public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
        setContentView(R.layout.browserinterno);
        final Intent intentbackback=new Intent(getApplicationContext(),Rand.class);
        Button button=(Button)findViewById(R.id.backbutton);
        button.setOnClickListener(new OnClickListener(){
                public void onClick(View v){
                        startActivity(intentbackback);
                }
        });
        if(isOnline()){
            mWebView=(WebView)findViewById(R.id.browser);
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.setWebViewClient(new RandClient());
            mWebView.loadUrl("http://www.sitoscelto.com");
                final Intent intentdice=new Intent(getApplicationContext(),Browser.class);
                Button buttondice=(Button)findViewById(R.id.dice);
                buttondice.setOnClickListener(new OnClickListener(){
                        public void onClick(View v){
                                startActivity(intentdice);
                        }
                });
        }else{
            Toast.makeText(this,"Connessione NON disponibile",Toast.LENGTH_LONG).show();
            Intent intentback=new Intent(getApplicationContext(),Rand.class);
            startActivity(intentback);
        }
    }
    private class RandClient extends WebViewClient{
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url){
                    view.loadUrl(url);
                    return true;
            }
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
            if((keyCode==KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()){
                    mWebView.goBack();
                    return true;
            }
            return super.onKeyDown(keyCode,event);
    }
    public boolean isOnline(){
            ConnectivityManager cm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        return cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }
}

Considerate che http://www.sitoscelto.com è un sito che mi arriva dall'activity precedente, quindi non è mai uguale

- Dovrei prendere la pagina corrente e ricaricarla in pratica.

- E un altra cosa, come faccio al click di un bottone a dire "apri la pagina corrente nel browser nativo".

Grazie mille a tutti
« Ultima modifica: 03 Marzo 2011, 18:10:26 CET da zak84, Reason: precisazioni »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #1 il: 03 Marzo 2011, 20:12:27 CET »
0
Il metodo reload della classe WebView non va bene?

Offline Khali

  • Utente junior
  • **
  • Post: 70
  • Respect: +7
    • u.felloni
    • Mostra profilo
  • Play Store ID:
    weetme software
  • Sistema operativo:
    windows 7
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #2 il: 03 Marzo 2011, 20:34:54 CET »
0
Citazione
Il metodo reload della classe WebView non va bene?

Quoto. Concordo con Ricky. Il metodo reload dovrebbe risolvere i tuoi problemi.

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #3 il: 03 Marzo 2011, 20:35:30 CET »
0
Il metodo reload della classe WebView non va bene?

l'ho messa all'onClick di un bottone (webview.reload();), ma non succede un bel niente.

Offline Khali

  • Utente junior
  • **
  • Post: 70
  • Respect: +7
    • u.felloni
    • Mostra profilo
  • Play Store ID:
    weetme software
  • Sistema operativo:
    windows 7
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #4 il: 03 Marzo 2011, 22:00:03 CET »
0
Non ho capito bene come fai il passaggio del sito (ad esempio www.ilmiosito....).

Cmq prova ad impostare a static la variabile webview e ad aggiungere una variabile static di tipo String (ad esempio static String linkDaElaborare).  Quest'ultima variabile ti potrebbe servire come appoggio per il link da visualizzare.

Prima di richiamare la nuova Activity, assegni alla variabile linkDaElaborare il link da visualizzare dalla webView e poi visualizzi il nuovo link con webView.load(LinkDaElaborare)


Forse il passaggio del link tra una Activity e un' altra tramite Intent, è la cosa più pulita.

Ciao
« Ultima modifica: 04 Marzo 2011, 09:20:24 CET da Khali »

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #5 il: 04 Marzo 2011, 14:20:57 CET »
0
cacchio si bastava lo static :-D

e per la cosa di aprire nel browser sempre con un bottone? considerando che io ho usato la shouldOverrideUrlLoading?

Offline Khali

  • Utente junior
  • **
  • Post: 70
  • Respect: +7
    • u.felloni
    • Mostra profilo
  • Play Store ID:
    weetme software
  • Sistema operativo:
    windows 7
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #6 il: 04 Marzo 2011, 16:07:45 CET »
0
Non ho capito bene, la funzionalità del bottone.

final Intent intentbackback=new Intent(getApplicationContext(),Rand.class);

Cos'è Rand.class?

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #7 il: 04 Marzo 2011, 16:22:51 CET »
0
Non ho capito bene, la funzionalità del bottone.

final Intent intentbackback=new Intent(getApplicationContext(),Rand.class);

Cos'è Rand.class?

no ma quello non centra con la mia domanda, è un bottone per tornare indietro.
io devo farne un altro inerente alla mia domanda

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #8 il: 04 Marzo 2011, 16:29:12 CET »
0
Ho risolto da solo:
Codice: [Seleziona]
                        public void onClick(View v){
                                Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse(mWebView.getUrl()));
                                startActivity(browserIntent);
                        }

Offline Khali

  • Utente junior
  • **
  • Post: 70
  • Respect: +7
    • u.felloni
    • Mostra profilo
  • Play Store ID:
    weetme software
  • Sistema operativo:
    windows 7
Re:Webview reload pagina corrente e aprire link nel browser..
« Risposta #9 il: 04 Marzo 2011, 16:40:25 CET »
0
Ottimo  :D