Javascript不适用于WebView-Android

Javascript不适用于WebView-Android,javascript,java,android,webview,Javascript,Java,Android,Webview,目前我有这段代码,我想检索webview的内容,同时删除webview某些部分的显示,但我的代码根本没有做任何事情或显示任何错误,所以我在这里不知所措。目前,我正在引用并发布我的代码 这是“我的网络视图”显示的页面 这是我的代码“WebViewActivity.java”` public class WebViewActivity extends Activity{ TextToSpeech textToSpeech; @SuppressLint("JavascriptInterface"

目前我有这段代码,我想检索webview的内容,同时删除webview某些部分的显示,但我的代码根本没有做任何事情或显示任何错误,所以我在这里不知所措。目前,我正在引用并发布我的代码

这是“我的网络视图”显示的页面

这是我的代码“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);


}



}
试试这个, 通过添加此行

       " webview.getSettings().setJavaScriptEnabled(true);" 
然后转到“Proguard.rules”文件,使注释后的代码可用于javascript

    # If your project uses WebView with JS, uncomment the following
    # and specify the fully qualified class name to the JavaScript interface
    # class:
    #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
    #   public *;
    #}
试试这个, 通过添加此行

       " webview.getSettings().setJavaScriptEnabled(true);" 
然后转到“Proguard.rules”文件,使注释后的代码可用于javascript

    # If your project uses WebView with JS, uncomment the following
    # and specify the fully qualified class name to the JavaScript interface
    # class:
    #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
    #   public *;
    #}

谢谢你的回复。只需移除#对吗?我不需要编辑任何其他内容?我能知道为什么android不只是在默认设置下启用它吗?是出于安全原因吗?是的,请删除“#”。是的,我认为JavaScript使用起来非常敏感,管理它可能需要很大的负担,这就是为什么他们建议这样做。什么是“为JavaScript接口类指定完全限定的类名”?请用谷歌搜索你的问题!!类或接口的完全限定名是包名,后跟类/接口名,并用句点(.)分隔。例如,“com.marakana.utils.MyClass”感谢您的回复。只需移除#对吗?我不需要编辑任何其他内容?我能知道为什么android不只是在默认设置下启用它吗?是出于安全原因吗?是的,请删除“#”。是的,我认为JavaScript使用起来非常敏感,管理它可能需要很大的负担,这就是为什么他们建议这样做。什么是“为JavaScript接口类指定完全限定的类名”?请用谷歌搜索你的问题!!类或接口的完全限定名是包名,后跟类/接口名,并用句点(.)分隔。例如,“com.marakana.utils.MyClass”