繁体   English   中英

通过WebView.goBack执行网址

[英]Execute url by WebView.goBack

我在下面的问题堆栈! 我解析网站,这是我的大概代码:

public class MainActivity extends Activity {
String CurURL = "";
    @Override
    public void onCreate(Bundle savedInstanceState) {
    webview.setWebViewClient(new ForumWebViewClient());
    new ParseMyPageTask().execute(url);
    }
    private class ForumWebViewClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView webview, String url) {
        new ParseMyPageTask().execute(url);
        return true;
    }
    }

    public class ParseMyPageTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
                    *JSoup work*
        return result;
            }
    @Override
    protected void onPostExecute(String result) {
            webview.loadDataWithBaseURL("http:..", result, "text/html", "UTF-8", CurURL);
    }
    }
    @Override
public void onBackPressed() {
    if (webview.canGoBack()) {
        webview.goBack();
        return;
    }
    super.onBackPressed();
}
}

按下后退按钮后,我应该如何为AsyncTask执行网址? 现在,它按原样返回页面,而不进行解析。

您需要操纵WebBackForwardList来加载URL,而不是默认情况下由WebView自动缓存的URL。

您可以通过重写WebView.goBack()

  @Override
  public void goBack() {
    WebBackForwardList temp = copyBackForwardList();
    for (int i=0; i<temp.getSize(); i++) {
      WebHistoryItem item = temp.getItemAtIndex(i);
      // do whatever you want here...
    }

    // do whatever you want here...
    super.goBack();
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM