在网页中,我正在使用,我需要删除一些部分:侧边栏例如我尝试了一些方法来做到这一点,但没有succsess.It总是整页,这是我在片段中这样做了。我的代码是:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.standing_fragment,null);
WebView wv= (WebView) view.findViewById(R.id.webView2);
WebViewClient client=new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//super.onPageStarted(view, url, favicon);
if(isLoaded)
return;
isLoaded=true;
view.loadUrl(url);
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:document.getElementById('sidebar').style.display = 'none';");
// wv.loadUrl("javascript:document.getElementsByClassName('div.table-container')[0].style.display='none'");
}
};
WebSettings settings=wv.getSettings();
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setJavaScriptEnabled(true);
wv.setWebViewClient(client);
wv.loadUrl("http://www.soccernews.com/teams/psg/");
return view;
}
我的错误是什么?
答案 0 :(得分:1)
要解决此问题,您需要记住webview的工作原理。 这是某种嵌入式浏览器'视图。 你可以这样解决:
为了演示一个例子,我将使用我编写的HttpRequest类来支持android 22+(因为apache的软件包已被弃用)。
第一步:请求并阅读字符串响应
String response=new HttpRequest("http://somedomain.com").prepare().sendAndReadString();
第二步:在加载前操纵响应
result+="<script>onload=function(){document.getElementById('sidebar').style.display='none';}</script>";
第三步:将其加载到网络视图
wv.loadData(result, "text/html", "UTF-8");
所有东西的简化示例:
new AsyncTask<String, Void, String>(){
protected String doInBackground(String[] params) {
try {
return new HttpRequest(params[0]).prepare().sendAndReadString();
} catch (Exception e) {
Log.e("***Web View - manipulated content - ERROR***", e.getMessage());
return null;//to promote null further
}
}
protected void onPostExecute(String result) {
if(result==null)return;//Error logged, don't load anything
result=result.concat("<script>onload=function(){document.querySelector('#sidebar').style.display='none';}</script>");
wv.loadData(result, "text/html", "UTF-8");
}
}.execute("http://www.soccernews.com/teams/psg/");