简体   繁体   中英

Webview is not loading two page

In my app one of my Activity is based on a webpage..I want to load a webpage that will display the ExamSeatingPlan from my Student Portal.I am logging into the website using JavaScript and then I want to load the page which will display my ExamSeatingPlan on the same webview. The problem I am facing is when I logged in using javascript the login is successful, but then it's not loading the web page that display my ExamSeatingPlan . It loads the required page if I minimize the app and then after a few second maximize it. I think I didn't implement the onPageFinished correct.It will be very helpful if someone help me solve the problem.

Thanks

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;

                }

            }

        });

    }

}

Now It is loading the new page but it is using almost 80% of CPU. Is there any way to reduce the CPU usage?

Try calling the loadotherpage() after your first page finished. So you need to change the following lines

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

to

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

        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM