소스는 아래와 같습니다. 아래 소스 대로면 onPageFinished 에서 progress bar가 사라져야 정상인데
progress bar가 끝까지 찬 상태에서 없어지지 않고 계속 유지하고 있네요.
혹시 불러오는 홈페이지 문제인가 싶어 네이버 모바일을 불러왔는데도 그러는 게 아마 소스쪽 문제인것
같습니다. 혹시 원인이 무엇인지 조언 주시면 큰 도움 될 것 같습니다.
감사합니다. (안드로이드 스튜디오 1.5.1 사용중입니다.)
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private String site;
private WebView WebView01;
private String mCurrentUrl;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar) this.findViewById(R.id.pro);
site = "http://m.naver.com";
WebView01 = (WebView) findViewById(R.id.webView1);
WebView01.getSettings().setJavaScriptEnabled(true);
WebView01.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
//WebView01.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
WebView01.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
progressBar.setVisibility(View.INVISIBLE);
WebView01.clearHistory();
WebView01.clearCache(true);
// WebView01.clearView();
}
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(MainActivity.this, "로딩에러" + description, Toast.LENGTH_SHORT).show();
}
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
// Redirect to deprecated method, so you can use it in all SDK versions
onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
}
});
WebView01.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
progressBar.setProgress(newProgress);
}
});
WebView01.loadUrl(site);
WebView01.setWebViewClient(new WebViewClientClass());
mCurrentUrl = null;
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}