在显示WebView之前加载特定网站中的所有网址[Android studio 3]

时间:2018-08-15 07:15:36

标签: android android-webview user-experience

我正在尝试在用户使用应用程序时加快其速度。以下是涉及在网站内容加载到网页上之前显示图像的应用程序的代码。我有2种解决方案可以加快或改善应用程序的用户体验。

  1. 在页面处于加载屏幕时加载所有URL。这包括应用程序找出网站上的所有URL,并在允许用户访问应用程序之前先加载网站。这将增加初始启动加载时间。但是,大大改善了浏览时应用程序的感觉。另外,也可以在满载时显示该网站,同时在后台下载其余网址网站。

  2. 在加载页面时添加加载旋转的gif。当前,当您第一次启动该应用程序时,它将显示一个初始屏幕,然后将显示该网站。但是,浏览网站时速度很慢。尝试在应用程序中浏览网站时,大约需要2-3秒。如果可以在加载效果不错的情况下添加旋转的gif。

这两个解决方案中的任何一个都是理想的。但是,第一个最好。劝告以及我将如何实施。

package com.ako.apakataorang;

    import android.os.Bundle;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.app.Activity;
    import android.view.View;
    import android.webkit.WebSettings;
    import android.widget.ImageView;
    import android.webkit.WebSettings.RenderPriority;
    import com.ako.apakataorang.R;
    import com.onesignal.OneSignal;

    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            OneSignal.startInit(this)
                    .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
                    .unsubscribeWhenNotificationsAreDisabled(true)
                    .init();

            setContentView(R.layout.activity_main);
            final ImageView loadingScreen = findViewById(R.id.ImageView1);
            final WebView myWebView = findViewById(R.id.WebView1);
            myWebView.setVisibility(View.INVISIBLE);
            WebSettings websettings = myWebView.getSettings();
            myWebView.getSettings().setLoadsImagesAutomatically(true);
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.getSettings().setDomStorageEnabled(true);
            myWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
            myWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
            myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

            myWebView.setWebViewClient(new WebViewClient()
            {
                @Override
                public void onPageFinished(WebView view, String url)
                {
                    myWebView.setVisibility(View.VISIBLE);
                    loadingScreen.setVisibility(View.INVISIBLE);
                }
            });
            myWebView.loadUrl("http://google.com/");

        }




        @Override
        public void onBackPressed(){
            WebView wv = (WebView)findViewById(R.id.WebView1);
            if(wv.canGoBack()){
                wv.goBack();
            } else {
                super.onBackPressed();
            }
        }
    }

0 个答案:

没有答案