Android Studio - Создание экрана загрузки / заставки для WebView - PullRequest
0 голосов
/ 30 мая 2018

Я прошел этот урок (я совсем новичок в Android Studio): Учебник по загрузке / заставке

и я не уверен, почему мой код работает неправильно.

В приложении, которое я создал, появляется круг загрузки, но он не исчезает, когда приложение загружает веб-страницу.

Я уже несколько раз просматривал свой код, и яне вижу никаких ошибок (очевидно, что они где-то есть!) Просто кажется, что он не распознает, что моя веб-страница загружена в приложение.

Вот мой код из моего файла MainActivity.java:

import android.net.http.SslError;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import android.graphics.Bitmap;
import android.view.View;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {
String ShowOrHideWebViewInitialUse = "show";
private WebView myWebView;
private ProgressBar spinner;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myWebView = (WebView) findViewById(R.id.webView);

    spinner = (ProgressBar)findViewById(R.id.progressBar1);
    myWebView.setWebViewClient(new CustomWebViewClient());

    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.getSettings().setDomStorageEnabled(true);
    myWebView.getSettings().setDatabaseEnabled(true);
    myWebView.getSettings().setMinimumFontSize(1);
    myWebView.getSettings().setMinimumLogicalFontSize(1);
    myWebView.setWebChromeClient(new WebChromeClient());
    myWebView.loadUrl("https://node-red-test.ftp21.net:1024/ui");
    myWebView.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){ handler.proceed(); } });
}

// This allows for a splash screen
// (and hide elements once the page loads)
private class CustomWebViewClient extends WebViewClient {

    @Override
    public void onPageStarted(WebView myWebView, String url, Bitmap favicon) {
        // only make it invisible the FIRST time the app is run
        if (ShowOrHideWebViewInitialUse.equals("show")) {
            myWebView.setVisibility(myWebView.INVISIBLE);
        }
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        ShowOrHideWebViewInitialUse = "hide";
        spinner.setVisibility(View.GONE);

        view.setVisibility(myWebView.VISIBLE);
        super.onPageFinished(view, url);

    }
}

@Override
public void onBackPressed() {
    if (myWebView.canGoBack()) {
        myWebView.goBack();
    } else {
        super.onBackPressed();
    }
}
}

В настоящее время я использую Android Studio версии 2.1.2 - из-за проблем с более поздними версиями, с которыми я столкнулся при изучении другого урока.

Спасибо,

...