如果在Webview中打开任何URL,如何返回Backbutton上的Webview页面?

Pra*_*ela 0 android webview

我有一个活动,其中有Webview可用.如果我单击webview中的任何URL,该URL将打开,但是当我单击后退按钮时,它不会出现在上一个Webview页面上,而是继续进行该webview页面之前的活动.

Scenerio: -我正在使用Xyz Activity,在Xyz活动的某些元素上单击它转到Webview活动,该活动显示webview上加载的URL.在webview上,如果我点击任何网址链接,它会打开,但是当我点击后退按钮时,它会返回到Xyz活动而不是Webview活动.我想回到Webview Activity而不是Xyz Activity.

任何人都可以指导我同样的,因为我无法找到我应该使用或实现什么使其按我的需要工作?任何帮助将不胜感激.提前致谢...

编辑:-

代码如下: -

public class StoryDetail extends SherlockActivity
{
    WebView content;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.story_detail);

    BaseStory story = BaseStory.createFromCursor(c); // BaseStory is a class containing Database values...

    // Get the fields
    content = (WebView) findViewById(R.id.content);
    content.getSettings().setPluginState(PluginState.ON_DEMAND);
    content.getSettings().setJavaScriptEnabled(true);
    content.getSettings().setAllowFileAccess(true);
    content.setWebChromeClient(new WebChromeClient());
    content.setWebViewClient(new WebViewClient());

    String html = 
        "<html><head>" + 
            "</head>" +
        "<body>" +

            "<section id=\"content\">" +
                story.getContent() + 
            "</section>" +
        "</body></html>"; //story.getContent() contains title, image, and url link supporting HTML Format itself. 
    //On clicking url link the webview open that page in Webview.

    content.loadDataWithBaseURL("http://somelink/", html, "text/html", "UTF-8", "");

}

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

    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

}

Bad*_*rul 5

试试这个,它将满足你的目的

webView.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
    if(event.getAction() == KeyEvent.ACTION_DOWN)
    {
        WebView webView = (WebView) v;

        switch(keyCode)
        {
            case KeyEvent.KEYCODE_BACK:
                if(webView.canGoBack())
                {
                    webView.goBack();
                    return true;
                }
                break;
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

});

对于Android 2.2及以上版本:

@Override
public void onBackPressed()
{
    if(webView.canGoBack())
        webView.goBack();
    else
        super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)