2013-11-25 37 views
0

我想通過Android中的webview顯示我的網站 但首先我要啓動webView.getSettings()。setJavaScriptEnabled(false); ((我不想要runJavaScript) 和頁面加載後完全或10秒後程序webView.getSettings()。setJavaScriptEnabled(true);自動 ((當時我想runJavaScript)) 我使用了Thread.sleep但沒有奏效 請幫我在WebView中運行JavaScript

,這是我的代碼

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); 
      } 

} 
+0

你爲什麼把你的'setJavaScriptEnabled(true)'放在catch塊中?它不會以這種方式執行。在try塊中將它移動到newActivity();行的下面。 – kiruwka

+0

以及爲什麼你重新開始自己的活動? – kiruwka

+0

kiruwka:你能寫出正確的代碼和代碼嗎 – user3033953

回答

1

試試這個

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)

+0

感謝您的幫助 – user3033953

+0

@ user3033953很樂意幫助,不要忘了標記這個答案是正確的/ upvote它,如果它適合你。 – anthonycr