我一直试图更改我的Webview应用程序,以不显示其加载的源URL的标题。我已经过了Stack Overflow历史记录中提供的所有方法,但其中的任何一个都没有起作用-所以我做得对,或者这些不再起作用了?
我的目标是找到一种方法来影响加载到webview应用程序的页面的CSS(例如,隐藏页眉和页脚)。前面提供的大多数方法都是基于Java的,我并不熟悉。我愿意寻求任何帮助,因为这是我正在建立的第一个项目,而我对此的知识还不太好。
此刻是我的MainActivity.java:
package com.U247;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView WebView;
/* dawdaw */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView = (WebView)findViewById(R.id.U247);
WebView.getSettings().setJavaScriptEnabled(true);
WebView.setWebViewClient(new WebViewClient());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
WebView.evaluateJavascript("var FunctionOne = function () {"
+ " try{document.getElementsByClassName('random-postaus')[0].style.display='none';}catch(e){}"
+ "};", null);
} else {
WebView.loadUrl("javascript:"
+ "var FunctionOne = function () {"
+ " try{document.getElementsByClassName('random-postaus')[0].style.display='none';}catch(e){}"
+ "};");
}
WebView.loadUrl("https://thewebsite.com");
}
@Override
public void onBackPressed() {
if (WebView.canGoBack()){
WebView.goBack();
} else {
super.onBackPressed();
}
}
}
好吧,终于找到了一种隐藏CSS元素的方法。在下面添加了整个代码,关键是使用onPageFinished方法。尽管它不是完美的,并且仅在加载整个页面后才激活,但在我的情况下,它仍然是隐藏元素的有效方法。
package com.U247;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView WebView;
/* dawdaw */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView = (WebView)findViewById(R.id.U247);
WebView.getSettings().setJavaScriptEnabled(true);
/* HIDE UNWANTED CSS ELEMENTS */
WebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
// hide element by class name
WebView.loadUrl("javascript:(function() { " +
"document.getElementsByClassName('class-name-here')[0].style.display='none'; })()");
// hide element by id
WebView.loadUrl("javascript:(function() { " +
"document.getElementById('header').style.display='none';})()");
}
});
WebView.loadUrl("https://thewebsite.com");
}
@Override
public void onBackPressed() {
if (WebView.canGoBack()){
WebView.goBack();
} else {
super.onBackPressed();
}
}
}