Derzeit habe ich diesen Code, wo ich einen Inhalt eines Webview abrufen und gleichzeitig Anzeige auf einem Teil des Webview entfernen möchte, aber mein Code überhaupt nichts getan oder irgendeinen Fehler zeigend, also bin ich hier Verlust. Derzeit beziehe ich mich auf this und this Post für meinen Code.Javascript funktioniert nicht für WebView - Android
Dies ist die Seite, wo mein webview Anzeige link
Das ist mein Code ist dies ‚WebViewActivity.java`
public class WebViewActivity extends Activity{
TextToSpeech textToSpeech;
@SuppressLint("JavascriptInterface")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
final WebView webview = (WebView) findViewById(R.id.webView);
TextView contentView = (TextView) findViewById(R.id.contentView);
Intent intent = getIntent();
String Address = intent.getStringExtra("URL");
//Log.d("Valuer", value);
//tt1.setText(value);
class MyJavaScriptInterface
{
private TextView contentView;
public MyJavaScriptInterface(TextView aContentView)
{
contentView = aContentView;
}
@SuppressWarnings("unused")
@SuppressLint("JavascriptInterface")
public void processContent(String aContent)
{
final String content = aContent;
contentView.post(new Runnable()
{
public void run()
{
contentView.setText(content);
}
});
}
}
webview.getSettings().setLoadsImagesAutomatically(true);
webview.addJavascriptInterface(new MyJavaScriptInterface(contentView), "INTERFACE");
webview.getSettings().setJavaScriptEnabled(true);
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webview.loadUrl("javascript:window.INTERFACE.processContent(document.getElementsByClassName('western')[0].innerText);");
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('section')[0].style.display=\"none\"; " +
"})()");
}
});
webview.loadUrl(Address);
//textToSpeech.speak("TALK", TextToSpeech.QUEUE_FLUSH, null);
}
}
Vielen Dank für Ihre Antwort. Nur durch Entfernen der # richtig? Ich muss nichts anderes bearbeiten? Kann ich wissen, warum Android dies nicht nur in den Standardeinstellungen aktiviert hat? Liegt es an Sicherheitsgründen? –
Ja, entfernen Sie einfach "#". Und ja, ich denke, JavaScript ist sehr sensible Sache zu verwenden, und es kann eine Menge Last zu verwalten, deshalb empfehlen sie dies. –
Was bedeutet es, "den vollständig qualifizierten Klassennamen für die JavaScript-Interface-Klasse angeben"? –