'Remove Header and Footer in WebView Amdroid
I want to remove the header and footer before loading the content to the web view. This code isn't working. I have boutique website. My code remove header and footer when load url in webview. When i click any boutique,it load details page with header and footer, it does not remove from inner pages
public class WebviewFragment extends Fragment implements IOnBackPressed {
WebSettings ws;
WebView webView;
Document document;
// TODO: Rename and change types of parameters
private String url;
public WebviewFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_webview, container, false);
webView = (WebView) v.findViewById(R.id.webView);
url = getArguments().getString("url");
new MyAsynTask().execute();
return v;
}
@Override
public boolean onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
return true;
} else {
// activity will act normal
return false;
}
}
private class MyAsynTask extends AsyncTask<Void, Void, Document> {
@Override
protected Document doInBackground(Void... voids) {
Document document = null;
try {
document = Jsoup.connect(url).get();
document.getElementById("header").remove();
document.getElementById("footer").remove();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
@Override
protected void onPostExecute(Document document) {
super.onPostExecute(document);
webView.loadDataWithBaseURL(url, document.toString(), "text/html", "utf-8", "");
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String request) {
view.loadUrl(request);
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:var footer = document.getElementById(\"footer\"); footer.parentNode.removeChild(footer); var header = document.getElementById(\"header-full\"); header.parentNode.removeChild(header);");
}
});
}
}
}
Please help me out, I shall be very thankful to you.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
