0

onProgressChanged(WebView view, int progress) コールバックで Web ページをロード中にリソース URL を取得する方法は? キャッシュからロードするときに、すでにキャッシュされているリソースで onloadresource が呼び出されないため、ここで必要です。どうも

4

3 に答える 3

0

このコードを試してください:

final ProgressBar Pbar;
 final TextView txtview = (TextView)findViewById(R.id.tV1);
 Pbar = (ProgressBar) findViewById(R.id.pB1);

MyView.setWebChromeClient(new WebChromeClient() {
      public void onProgressChanged(WebView view, int progress) 
      {
         if(progress < 100 && Pbar.getVisibility() == ProgressBar.GONE){
             Pbar.setVisibility(ProgressBar.VISIBLE);
             txtview.setVisibility(View.VISIBLE);
         }
         Pbar.setProgress(progress);
         if(progress == 100) {
             Pbar.setVisibility(ProgressBar.GONE);
             txtview.setVisibility(View.GONE);
         }
      }
 });
于 2013-01-16T11:46:42.140 に答える
0

あなたが使用するとき、あなたはあなたの目的のためにこのメソッドをWebChromeClientオーバーライドすることができますonProgressChanged(WebView view, int progress)このような何かが仕事をします。

yourWebViewObject.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            currentActivity.setTitle("Loading...");
            currentActivity.setProgress(progress * 100);

            if(progress == 100)
                currentActivity.setTitle(R.string.app_name);
        }
});

また、サンプルプログラムの場合、AndroidのWebView、WebChromeClient、およびWebViewClientを使用して、Webページをロードし、進行状況を表示できます

于 2013-01-16T11:48:04.613 に答える
0

このコード スニペットは、中間の進行状況を示すのに役立つ場合があります。

 Button btnLoad = (Button) findViewById(R.id.btn_load);
     btnLoad.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
             EditText etUrl = (EditText) findViewById(R.id.et_url);
              mWvUrl.loadUrl(etUrl.getText().toString());
              activity.setProgressBarIndeterminateVisibility(true);
        }
    });

     mWvUrl.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                /** This prevents the loading of pages in system browser */
                return false;
            }

            /** Callback method, executed when the page is completely loaded */
            @Override
            public void onPageFinished(WebView view, String url) {
                 super.onPageFinished(view, url);

                 Toast.makeText(getBaseContext(),
                                "Page loaded Completely",
                                Toast.LENGTH_SHORT).show();

                /** Hiding Indeterminate Progress Bar in the title bar*/
                activity.setProgressBarIndeterminateVisibility(false);

            }

        });
于 2013-01-16T11:50:45.163 に答える