Ho avuto un ciclo morto in un'applicazione webview Android con backkey mentre si occupava di collegamenti di reindirizzamento.Dead loop in android webview backkey per il collegamento href redirect
Ad esempio, quando la mia Webview è iniziata, va a link0.
Nel link0, c'è un collegamento href che collega a link1. Link1 redrect to link2.
Quindi, se faccio clic su link1, andrà a link1, quindi reindirizzare a link2. Quando faccio clic su backkey, dovrebbe tornare a link0, nel mio caso. Invece, va a link1, che reindirizza nuovamente a link2. Quindi non ho mai avuto la possibilità di tornare indietro.
Il backkey funziona correttamente con altri collegamenti se non sono collegamenti di reindirizzamento.
Ho cercato su Google webs, ma non ho trovato la domanda correlata.
A proposito, il backkey funziona nel browser Internet come previsto. Ma non in webview.
Di seguito è riportato il mio codice, da provare. Come puoi vedere nel codice, ho provato sia suBackPressed che onKeyDown, ma neigher funziona.
Grazie per il gentile aiuto. Mi sto battendo per un po '.
========================================= ====================================
public class MyActivity extends Activity
{
private WebView myWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://50.112.242.120/temp/");
myWebView.setWebViewClient(new MyWebViewClient());
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
myWebView.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the Back button and if there's history
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
// If it wasn't the Back key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
}
.
// main.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
sei arrivato da qualche parte con questo? –
Quando si dice "link di reindirizzamento" si intende un reindirizzamento HTTP 302 o client con tag Javascript o META expires? –