2015-08-24 29 views
0

在我的應用我的活動之一是基於webpage..I要加載網頁將從我的學生Portal.I顯示ExamSeatingPlan我登錄到使用JavaScript的網站然後我想要加載在同一個webview上顯示我的ExamSeatingPlan的頁面。我面臨的問題是當我使用JavaScript登錄時,登錄成功,但它不會加載顯示我的ExamSeatingPlan的網頁。它會加載所需的頁面,如果我最小化應用程序,然後幾秒鐘後最大化它。我想我沒有實現onPageFinished正確。如果有人幫我解決問題,這將是非常有用的。Webview是不是同時加載兩個

感謝

MainActivity.java

package com.example.ebad.badwae; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends AppCompatActivity { 

    final String url = "http://111.68.99.8/StudentProfile/"; 
    final String urltesting = "http://111.68.99.8/StudentProfile/ExamSeatingPlan.aspx"; 
    WebView view; 
    boolean loaded; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     view = (WebView) findViewById(R.id.webview); 
     WebSettings webSettings = view.getSettings(); 

     webSettings.setJavaScriptEnabled(true); 
     view.loadUrl(url); 


     view.setWebViewClient(new WebViewClient() { 

      @Override 
      public void onPageFinished(WebView views, String urls) { 
       view.loadUrl("javascript: {" + "document.getElementById('ctl00_Body_ENROLLMENTTextBox_tb').value = '" + "01-134121-061" + "';" + 
         "document.getElementById('ctl00_Body_PasswordTextBox_tb').value = '" + "123456789" + "';" + 
         "document.getElementsByName('ctl00$Body$LoginButton')[0].click();" + "};"); 

       onPageFinishede(views, urls); 

      } 


      public void onPageFinishede(WebView views, String urls) { 
       if (!loaded) { 
        views.loadUrl(urltesting); 
        loaded = true; 

       } 

      } 

     }); 

    } 

} 

現在是加載新的一頁,但它是利用CPU的近80%。有什麼辦法可以減少CPU使用率嗎?

+0

您是否嘗試過'意見。 loadUrl'而不是'view「。 loadUrl'? –

+0

@языкK它的工作,但它使用幾乎80%的CPU。 – Ebadali

回答

0

嘗試在第一頁完成後調用loadotherpage()。 所以,你需要以下幾行

view.setWebViewClient(new WebViewClient() { 
      public void onPageFinished(WebView views, String urls) { 

       view.loadUrl("javascript: {" + "document.getElementById('ctl00_Body_ENROLLMENTTextBox_tb').value = '" + "01-134121-061" + "';" + 
         "document.getElementById('ctl00_Body_PasswordTextBox_tb').value = '" + "123456789" + "';" + 
         "document.getElementsByName('ctl00$Body$LoginButton')[0].click();" + "};"); 

      } 

     }); 

     loadotherpage(); 

改變

view.setWebViewClient(new WebViewClient() { 
      public void onPageFinished(WebView views, String urls) { 

       view.loadUrl("javascript: {" + "document.getElementById('ctl00_Body_ENROLLMENTTextBox_tb').value = '" + "01-134121-061" + "';" + 
         "document.getElementById('ctl00_Body_PasswordTextBox_tb').value = '" + "123456789" + "';" + 
         "document.getElementsByName('ctl00$Body$LoginButton')[0].click();" + "};"); 
      if(!loaded){ 
       loadotherpage(); 
       loaded = true; 
      } 
      } 

     }); 
+0

我試過,但同樣的問題,它不加載其他頁面,如果我最小化應用程序,並再次最大化,然後顯示otherpage .. – Ebadali

相關問題