2

通常のモバイル ブラウザを使用している場合は、[戻る] ボタンを押すと、前のページに移動します。アプリで WebView を使用して Web ページを表示し、ユーザーが前のページに戻りたい場合、通常はどのように行われますか? [戻る] ボタンを押すと、ユーザーは自動的に前のページに戻りますか、それとも前のアクティビティに戻りますか? 通常、[戻る] ボタンはユーザーを前のアクティビティに移動させるためのものであるため、前の Web ページに戻るために使用するべきではないと思います。この場合、モバイル Web ページには、ユーザーがクリックする独自の [戻る] リンクを含める必要がありますか?

私がやろうとしていることは、私が採用すべき正しい行動を理解することだと思います。

4

5 に答える 5

5

いくつかの一般的なブラウザを見てみましょう。現在、私のデバイスには 2 つのブラウザがあります

  1. クロム
  2. デフォルトのインターネット ブラウザ

どちらのブラウザでも、前のページに移動します。したがって、それは一般的な動作です。そうするために

を上書きonBackPressedして前のページに移動できます。

@Override
public void onBackPressed(){
            if(mWebView.canGoBack() == true){
                mWebView.goBack();
            }
            else{
                finish();
            }
}
于 2013-04-17T05:05:58.327 に答える
2

戻るボタンはほとんどの Android デバイスに搭載されていることに注意してください。したがって、前のアクティビティに戻るためにアクティビティに戻るボタンは必要ありません。

また、webview について、webview のナビゲーションで前のすべてのページを移動する場合は、戻るボタンを配置し、メソッドを使用して webview のナビゲーションを実装できますwebview.goBack()

つまり、ユーザーに前のページに移動してもらいたい場合は、webview の機能を提供して前のページに戻り、最初のページからユーザーが [戻る] ボタンをもう一度クリックしてアクティビティを終了する必要があります。

于 2013-04-17T05:17:35.957 に答える
1

これを使用して onkeydown イベントをオーバーライドし、押されたキー (この場合は戻るキー) を確認して、前のページがあるかどうかを確認できます。

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode)
            {
            case KeyEvent.KEYCODE_BACK:
                if(yourWebView.canGoBack() == true){
                    yourWebView.goBack();
                }else{
                    finish();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }
于 2013-04-17T05:06:12.437 に答える
0

WebView を使用したアクティビティでは、次のようなものがあります。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode)
        {
        case KeyEvent.KEYCODE_BACK:
            if(yourWebView.canGoBack() == true){
                yourWebView.goBack();
            }else{
                finish();
            }
            return true;
        }

    }
    return super.onKeyDown(keyCode, event);
}

または onBackPressed メソッドをオーバーライドします。

@Override
public void onBackPressed() {
   if(yourWebView.canGoBack() == true){
      yourWebView.goBack();
   } else {
      finish();
   }
}
于 2013-04-17T05:08:43.590 に答える
0

戻るボタンをクリックしているときは、webview を開くアクティビティに対してクリックしているため、レイアウトに戻るボタンを配置することをお勧めします。したがって、ユーザーが最後に開いた URL を保存します。

于 2013-04-17T05:06:18.503 に答える