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

 莫莫2602891683 发布于 2023-01-06 20:00

我有一个活动,其中有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 = 
        "" + 
            "" +
        "" +

            "
" + story.getContent() + "
" + ""; //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); }

}

1 个回答
  • 试试这个,它将满足你的目的

    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;
    }
    

    });

    对于Android 2.2及以上版本:

    @Override
    public void onBackPressed()
    {
        if(webView.canGoBack())
            webView.goBack();
        else
            super.onBackPressed();
    }
    

    2023-01-06 20:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有