Eu tenho um aplicativo no qual tenho um WebView
onde exibo alguns sites. Funciona, clicando em um link na página da web para a próxima página no site dentro do meu aplicativo. Mas quando clico no botão Voltar do telefone, ele me leva diretamente ao meu aplicativo. Eu quero voltar para a página anterior no site. Como posso fazer isso?
Aqui está o exemplo de código que estou usando:
public class Webdisplay extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.webdisplay);
getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
Window.PROGRESS_VISIBILITY_ON);
Toast loadingmess = Toast.makeText(this,
"Cargando El Diario de Hoy", Toast.LENGTH_SHORT);
loadingmess.show();
WebView myWebView;
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.elsalvador.com");
myWebView.setWebViewClient(new WebViewClient());
myWebView.setInitialScale(1);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setUseWideViewPort(true);
final Activity MyActivity = this;
myWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100);
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
}
});
}
}
android
android-webview
zvzej
fonte
fonte
Respostas:
Uso algo assim em minhas atividades com o WebViews:
Editar:
Para que esse código funcione, você precisa adicionar um campo ao que
Activity
contém o WebView:Inicialize-o no
onCreate()
método e você deve estar pronto.fonte
finish()
colocarreturn super.onKeyDown(keyCode, event)
else
blocoSe você estiver usando o Android 2.2 e superior (que é a maioria dos dispositivos agora), o código a seguir fará o que você deseja.
fonte
android:noHistory="true"
atributo que<activity>
você deseja, no AndroidManifest.xmlreturn;
? Isso acontece no guia de treinamento .Esta é a minha solução. Também funciona no Fragment.
fonte
Referência completa para o próximo botão e barra de progresso: colocar de volta e próximo botão na visualização na web
Se você quiser voltar à página anterior ao clicar no botão Voltar do telefone, use o seguinte:
Você também pode criar um botão Voltar personalizado como este:
fonte
O foco também deve ser verificado no onBackPressed
fonte
Por que não usar
onBackPressed()
?fonte
Aqui está um código com confirmação de saída:
fonte
fonte
No kotlin:
webView - ID do componente webview em xml, se estiver usando referência sintética.
fonte
A primeira resposta de FoamyGuy está correta, mas tenho algumas adições; reputações baixas não podem me permitir fazer comentários. Se, por algum motivo, sua página falhar ao carregar, defina um sinalizador para anotar a falha e verifique-o na substituição onBackPressed. Caso contrário, seu canGoBack () será executado para sempre sem direcionar para a atividade de retorno real, se estivesse lá:
fonte
As bibliotecas a seguir em sua classe devem lidar com o onBackKeyPressed. canGoBack () verifica se a visualização na web pode fazer referência à página anterior. Se for possível, use a função goBack () para fazer referência à página anterior (voltar).
fonte
Aqui está a solução Kotlin:
fonte
Maneira oficial de Kotlin:
https://developer.android.com/guide/webapps/webview.html#NavigatingHistory
fonte
Se alguém quiser manipular backPressed para um webView dentro de um fragmento , ele poderá usar o código abaixo.
Copie o código abaixo em sua
Activity
classe (que contém um fragmentoYourFragmmentName
)}
Copie este código no fragmento
YourFragmentName
Notas
Activity
deve ser substituído pela classe de atividade real que você está usando.YourFragmentName
deve ser substituído pelo nome do seu fragmento.webView
emYourFragmentName
para que possa ser acessado de dentro da função.fonte
Você pode tentar isso para a visualização da web em um fragmento:
fonte
use esse código para voltar à página e, quando a última página chegou, sair da atividade
fonte
Webview em atividade, o código abaixo funcionou para mim. Conclua a atividade depois de carregar o URL no webview.in onbackpressed, vá para a atividade anterior
fonte