[解決済み] WebViewで戻るボタンが押されたときに前のページに戻るには?
2022-03-14 05:40:41
質問
あるアプリで
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);
}
});
}
}
解決方法は?
WebViewを使ったアクティビティでこのようなものを使っています。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
編集する
このコードを動作させるためには、フィールドを
Activity
WebView を含む。
private WebView mWebView;
で初期化します。
onCreate()
メソッドを実行すればOKです。
mWebView = (WebView) findViewById(R.id.webView);
関連
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
Androidのadbデバイスがオフラインであることが判明
-
[解決済み] Androidです。前のアクティビティに戻る
-
プログラム "git.exe "を実行できない場合の正しい解決方法です。CreateProcessエラー=2
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
Android基本アプレット
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する
-
[解決済み] WebViewがURLの読み込みを終了したことを確認する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
プロセス 'command 'F:\sdkbuild-tools', 26.0.2 AAAPT.exe' finished with non-zero exit value 1
-
android exception - aapt.exe has stopped working.
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
Androidの美しいSeekBarスタイルのカスタマイズ