android - एंड्रॉइड वेबव्यू प्रगति पट्टी




progress-bar webview (7)

श्रीमान सजेदुल करीम के जवाब में मैंने एक समान लिखा था।

webView = (WebView) view.findViewById(R.id.web);
progressBar = (ProgressBar) view.findViewById(R.id.progress);
webView.setWebChromeClient(new WebChromeClient());

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        progressBar.setVisibility(View.VISIBLE);
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        progressBar.setVisibility(View.GONE);
    }

    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
        super.onReceivedError(view, request, error);
        Toast.makeText(getActivity(), "Cannot load page", Toast.LENGTH_SHORT).show();
        progressBar.setVisibility(View.GONE);
    }
});

webView.loadUrl(url);

मैंने here इस तरह के एक प्रश्न को देखा है, लेकिन जैसा कि मैं एक नौसिखिया हूं, कोई यह बता सकता है कि वेबव्यू में काम करने के लिए इसे कैसे प्राप्त किया जाए या कम से कम 10 सेकंड की देरी कैसे सेट करें ताकि लोग जान सकें कि यह लोड हो रहा है?


यह सच है, आपके इच्छित वाक्य के लिए ऐप का नाम बदलना जैसे अधिक पूरा विकल्प भी हैं। इस ट्यूटोरियल की जांच करें इससे मदद मिल सकती है:

http://www.firstdroid.com/2010/08/04/adding-progress-bar-on-webview-android-tutorials/

उस ट्यूटोरियल में आपके पास एक संपूर्ण उदाहरण है कि वेबव्यू ऐप में प्रोग्रेसबार का उपयोग कैसे करें।

एड्रियन।


प्रक्रिया समाप्त होने तक प्रतीक्षा करें ...

while(webview.getProgress()< 100){}
progressBar.setVisibility(View.GONE);

         webview= (WebView) findViewById(R.id.web);
         webview.setWebChromeClient(new WebChromeClient() 
         {
          public void onProgressChanged(WebView view, int progress)   
             {
                 WebActivity .setTitle("Loading...");
                 WebActivity .setProgress(progress * 100); 
                 if(progress == 100)
                 WebActivity .setTitle(R.string.app_name);
       }
     });
 webview.setWebViewClient(new WebViewClient());
 webview.getSettings().setJavaScriptEnabled(true);
 webview.loadUrl("http://google.com");

अधिक संदर्भ के लिए यहां क्लिक करें http://androiddhina.blogspot.in/2015/05/android-load-webview-with-progressbar.html


मुझे अभी यह कैसे करना है इसका एक अच्छा उदाहरण मिला है: http://developer.android.com/reference/android/webkit/WebView.html । आपको बस से प्रगति को बदलने की जरूरत है:

activity.setProgress(progress * 1000);

सेवा मेरे

activity.setProgress(progress * 100);

एंड्रॉइड वेब व्यू में प्रगति पट्टी जोड़ने का सबसे आसान तरीका यहां है।

अपनी गतिविधि / टुकड़े में एक बूलियन क्षेत्र जोड़ें

private boolean isRedirected;

यह बूलियन मृत पृष्ठों के कारण वेब पेजों के पुनर्निर्देशन को रोक देगा.अब आप इस विधि में बस अपनी वेबव्यू ऑब्जेक्ट और वेब यूआरएल पास कर सकते हैं।

private void startWebView(WebView webView,String url) {

    webView.setWebViewClient(new WebViewClient() {
        ProgressDialog progressDialog;

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            isRedirected = true;
            return false;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            isRedirected = false;
        }

        public void onLoadResource (WebView view, String url) {
            if (!isRedirected) {
                if (progressDialog == null) {
                    progressDialog = new ProgressDialog(SponceredDetailsActivity.this);
                    progressDialog.setMessage("Loading...");
                    progressDialog.show();
                }
            }

        }
        public void onPageFinished(WebView view, String url) {
            try{
                isRedirected=true;

                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                    progressDialog = null;
                }



            }catch(Exception exception){
                exception.printStackTrace();
            }
        }

    });

    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(url);
}

यहां लोड होने पर इसे onPageStarted कॉल किया जाएगा। यहां मैं बूलियन फ़ील्ड सेट कर रहा हूं। लेकिन जब पृष्ठ लोड खत्म होता है तो यह पेज पर समाप्त हो जाएगा और यहां पर बूलियन फ़ील्ड सत्य पर सेट है। कभी-कभी अगर यूआरएल मर जाता है तो यह रीडायरेक्ट हो जाएगा और यह onPageFinished विधि से पहले onPageFinished onLoadResource() आ जाएगा। इस कारण से यह प्रगति पट्टी को छुपा नहीं देगा। इसे रोकने के लिए मैं जांच रहा हूं if (!isRedirected) onLoadResource()

प्रगति संवाद को खारिज करने से पहले onPageFinished() विधि में आप अपना 10 सेकंड टाइम विलंब कोड लिख सकते हैं

बस। हैप्पी कोडिंग :)


एंड्रॉइड स्टूडियो के लिए genymotion.com आज़माएं । तेजी से धधकता! बस एक बार स्थापना की जरूरत है। कोई और एवीडी दर्द नहीं।





android progress-bar webview