Android 在WebView中运行JavaScript

Android 在WebView中运行JavaScript,android,webview,Android,Webview,我想在Android中通过webview显示我的网站 但首先我想启动webView.getSettings().setJavaScriptEnabled(false); ((一开始我不想要运行JavaScript)) 页面完全加载后或10秒程序webView.getSettings().setJavaScriptEnabled(true)后;自动地 ((然后我想要运行JavaScript)) 我使用Thread.sleep,但不起作用 请帮帮我 这是我的密码 public class Activ

我想在Android中通过webview显示我的网站 但首先我想启动webView.getSettings().setJavaScriptEnabled(false); ((一开始我不想要运行JavaScript)) 页面完全加载后或10秒程序webView.getSettings().setJavaScriptEnabled(true)后;自动地 ((然后我想要运行JavaScript)) 我使用Thread.sleep,但不起作用 请帮帮我

这是我的密码

public class Activity1 extends Activity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_activity1);
            String url = "http://student.iaun.ac.ir";
            webView = (WebView) findViewById(R.id.webview);

            webView.setWebViewClient(new myWebViewClient());
            webView.getSettings().setJavaScriptEnabled(false);
            webView.getSettings().setLoadWithOverviewMode(true);
            webView.getSettings().setUseWideViewPort(true);
            webView.getSettings().setBuiltInZoomControls(true);
            webView.loadUrl(url);

            new Thread(new Runnable() {
                @Override
                public void run() {
                                  try {
                                        newActivity();
                                  } catch (InterruptedException e) {
                             webView.getSettings().setJavaScriptEnabled(true);     
                                     e.printStackTrace();
                                    }

                        }
            }).start();    

}

void newActivity() throws InterruptedException {
    Thread.sleep(15001);

    startActivity(getIntent());
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();   
}

           @Override
           public boolean onKeyDown(int keyCode, KeyEvent event)
          {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
                webView.goBack();
                return true;
            }
            return super.onKeyDown(keyCode, event);
           }

}
试试这个

private WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity1);
        String url = "http://student.iaun.ac.ir";
        webView = (WebView) findViewById(R.id.webview);

        webView.setWebViewClient(new myWebViewClient());
        webView.getSettings().setJavaScriptEnabled(false);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.loadUrl(url);

        new Thread(new Runnable() {
            @Override
            public void run() {
                              try {
                                    startDelay();
                                    webView.getSettings().setJavaScriptEnabled(true);     
                              } catch (InterruptedException e) {
                                 e.printStackTrace();
                                }

                    }
        }).start();    

}

void startDelay() throws InterruptedException {
    Thread.sleep(10000);
}
我所做的只是将setJavaScriptEnabled调用移动到try-catch的try部分,我删除了对startActivity的调用,因为在10秒后重新启动整个活动对我来说没有意义


但是比这更好的是,设置一个
WebViewClient
,并在OnPageFinished方法中放入
setJavaScripteEnabled(true)

为什么要将
setJavaScriptEnabled(true)
放在catch块中?它不会以这种方式执行。只需将其移到行
newActivity()下方即可在一个try块中。那你为什么要重新开始你自己的活动呢?基鲁瓦卡:你能写正确的代码和代码吗works@user3033953很高兴为您提供帮助,如果这个答案对您有效,请不要忘记将其标记为正确/向上投票。