У меня есть приложение, в котором у меня есть WebView
несколько веб-сайтов. Это работает, щелкнув ссылку на веб-странице, можно перейти на следующую страницу веб-сайта в моем приложении. Но когда я нажимаю кнопку «Назад» на телефоне, это сразу приводит меня в мое приложение. Вместо этого я хочу вернуться на предыдущую страницу сайта. Как я могу это сделать?
Вот пример кода, который я использую:
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
источник
источник
Ответы:
Я использую что-то подобное в своей деятельности с WebViews:
Редактировать:
Чтобы этот код работал, вам нужно добавить поле,
Activity
содержащее WebView:Инициализируйте его в
onCreate()
методе, и вы должны быть готовы.источник
finish()
поставитьreturn super.onKeyDown(keyCode, event)
else
блокЕсли вы используете Android 2.2 и выше (а это большинство устройств сейчас), следующий код даст вам то, что вы хотите.
источник
android:noHistory="true"
атрибут в<activity>
return;
? Это делается в учебном пособии .Это моё решение. Это работает также во Фрагменте.
источник
Полная ссылка на следующую кнопку и индикатор выполнения: в веб-просмотре нажмите кнопку «Назад» и «Следующая»
Если вы хотите перейти на обратную страницу, когда нажмете кнопку «Назад» на телефоне, используйте это:
Вы также можете создать пользовательскую кнопку возврата, как это:
источник
Фокусировка также должна быть проверена на BackPress.
источник
Почему бы не использовать
onBackPressed()
?источник
Вот код с подтверждением выхода:
источник
источник
В котлин:
webView - идентификатор компонента webview в xml, если используется синтетическая ссылка.
источник
Первый ответ от FoamyGuy правильный, но у меня есть некоторые дополнения; низкая репутация не может позволить мне делать комментарии. Если по каким-либо причинам ваша страница не загружается, убедитесь, что вы установили флажок, чтобы принять к сведению сбой, а затем проверьте его в переопределении onBackPressed. В противном случае ваш canGoBack () будет всегда выполняться без перехода к действию back, если оно было там:
источник
Следующие библиотеки вашего класса должны обрабатывать onBackKeyPressed. canGoBack () проверяет, может ли веб-просмотр ссылаться на предыдущую страницу. Если это возможно, используйте функцию goBack () для ссылки на предыдущую страницу (возврат).
источник
Вот решение Kotlin:
источник
Официальный путь Kotlin:
https://developer.android.com/guide/webapps/webview.html#NavigatingHistory
источник
Если кто-то хочет обработать backPressed для webView внутри фрагмента , он может использовать приведенный ниже код.
Скопируйте приведенный ниже код в свой
Activity
класс (который содержит фрагментYourFragmmentName
)}
Скопируйте этот код во фрагмент
YourFragmentName
Ноты
Activity
должны быть заменены фактическим классом Acctivity, который вы используете.YourFragmentName
следует заменить на название вашего фрагмента.webView
вYourFragmentName
так что она может быть доступна из функции.источник
Вы можете попробовать это для веб-просмотра во фрагменте:
источник
используйте этот код, чтобы вернуться на страницу, а когда пришла последняя страница, выйти из активности
источник
Webview в Activity, код ниже работал для меня, Завершите действие после загрузки URL-адреса в webview.in, после чего нажмите на него, чтобы перейти к предыдущему действию.
источник