0

Web アプリを整理しようとしていますが、電話のソフト キーを使用して戻るボタンを使用できる方法が見つかりません。どうすればこれを行うことができますか?つまり、電話の戻るボタンを使用して、前に表示した Web ページに戻りたいと考えています。

ありがとうございました

ヨルダン

  package com.wear2gym;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class Wear2gym extends Activity
{
    final Activity activity = this;



    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.main);
        WebView webView = (WebView) findViewById(R.id.WebView);
        webView.getSettings().setJavaScriptEnabled(true);

        webView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress)
            {
                activity.setTitle("Pumping some iron...");
                activity.setProgress(progress * 100);

                if(progress == 100)
                    activity.setTitle(R.string.app_name);
            }
        });

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
            {
                 Toast.makeText(activity, "Sorry but there is no internet connection! " , Toast.LENGTH_LONG).show();
                 view.loadUrl("file:///android_asset/nointernet.html");
                // Handle the error
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                return true;
            }
        });

        webView.loadUrl("http://wear2gym.co.uk");
        webView.canGoBack();
    }
}
4

2 に答える 2

4

onBackPressed() は API レベル 5 以降でしか利用できないため、お勧めしません。

ここで素晴らしい情報を見つけることができます: http://developer.android.com/guide/webapps/webview.html

@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);
}
于 2012-04-05T18:49:27.617 に答える
0

onBackPressed()メソッドをオーバーライドします。

@Override
public void onBackPressed() {

    if(mWebView.canGoBack()) {
        mWebView.goBack();
    }
    else {
        super.onBackPressed();
    }
}

これは、戻れWebViewなくなるまで戻ります。戻れなくなった場合、終了しますActivity

于 2012-04-05T18:47:28.803 に答える