android - webview 每次显示最后一个 loadurl() 方法的内容

标签 android webview

我遇到了使用 loadDataWithBaseURL 方法加载网站的问题。我在 webview 中加载了一个准备好的网站。如果我返回之前的 Activity 并启动 webview Activity ,它会使用 loadDataWithBaseURL() 方法加载同一个准备好的网站,但我得到的 webview 的内容是原来的两倍。比如Hello World和第二个Hello World。 我的代码如下:

 package de.http.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebBackForwardList;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebviewActivity extends Activity {

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mywebview);         
        Bundle bundle= this.getIntent().getExtras();
        String param1 = bundle.getString("Weburl");

        getDetailWebsite(param1);   

        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setBuiltInZoomControls(true);

        loadWebview();

    }

    public void loadWebview()
    {       
        webview.clearView();        

        webview.loadDataWithBaseURL("http://branchenportal-schlitz.de", HttpHelperClass.htmlDetailWebsiteCode, "text/html", "UTF-8", HttpHelperClass.htmlDetailWebsiteCode);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();   

            WebBackForwardList mWebBackForwardList = webview.copyBackForwardList();
            String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()).getUrl();

            if(historyUrl.contains("<html>"))
            {               
                loadWebview();
            }

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

    private void getDetailWebsite(String url)
    {   
        try{            
            HttpHelperClass.executeHttpGetDetailWebsite(url,this);

        }catch (Exception ex)
        {
            ex.printStackTrace();           
        }
    }

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            if(url.contains("branchenportal-schlitz.de"))
            {
                view.clearHistory();
            }
            super.onPageFinished(view, url);
        }
    }

    @Override
    protected void onStop() {

        webview.clearCache(true);       
        webview.clearView();
        webview.clearHistory();
        webview.destroy();      
        super.onStop();     
    }


}

有没有人知道我做错了什么? 提前致谢。 关于

最佳答案

好吧,为了解决这个问题,我首先要删除(注释掉)您在 public boolean onKeyDown(int keyCode, KeyEvent event) 下面的所有代码。然后你可以看看它是否在你的 onCreate 中。但这取决于。

  @Override
 public void onCreate(Bundle savedInstanceState)
 {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.buttons);
     wb = new WebView(this);
     wb.getSettings().setJavaScriptEnabled(true);
     wb.setWebViewClient(new HelloWebViewClient()); 

     final String urlToLoad = "http://www.yourWebsite.com";

     wb.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
     wb.loadUrl(urlToLoad);
 }

从这里开始,然后开始重新添加您的额外代码。

关于android - webview 每次显示最后一个 loadurl() 方法的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686698/

相关文章:

android - 带有交互器/用例的 MVVM 架构

android - Manifest 值能否依赖于 build.gradle 文件

javascript - 页面重新加载 (Webview.loadUrl) 导致 Javascript 未被(完全)处理

cocoa - 沙盒 cocoa 应用程序中捆绑的 NPAPI 插件

android - 如何在android中将url加载到webview时显示进度?

java - Android Studio下面的类无法实例化?

Android线程无法访问Main.xml

android - 如何在 Android webview 中打开一个 xhtml 文件

android - 首次启动 Activity 时,淡入动画不适用于 webview

android - 如果我有一个推文字符串 (json),我可以加载到 Twitter4j Tweet[] 中吗?