请告诉我如何在后台加载webview。 我制作了一个使用android webview的应用程序。 问题是,加载webview需要花费太多时间.. 所以我不想显示我的网站加载..而是我需要显示启动画面和webview完成加载后,我想显示我完全加载的webview ... 我试过onPageStarted(显示启动)和onPageFinished(隐藏启动)它不工作.... 我尝试了AsyncTast doItBackground方法,但是它给了我从ui thead调用它的错误。 请帮我完成任何源代码或示例程序....
答案 0 :(得分:0)
使用以下代码 - 我已显示progressDialog,U可根据您的要求进行管理
web = (WebView)v.findViewById(R.id.web);
WebSettings settings = web.getSettings();
settings.setJavaScriptEnabled(true);
web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
final AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
progressBar = ProgressDialog.show(getActivity(), getString(R.string.app_name), "Loading...");
web.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
progressBar.dismiss();
}
}
@SuppressWarnings("deprecation")
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(getActivity(), "Oh no! " + description, Toast.LENGTH_SHORT).show();
alertDialog.setTitle("Error");
alertDialog.setMessage(description);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int which) {
return;
}
});
alertDialog.show();
}
});
web.loadUrl("https://www.facebook.com/Schapp-Demo-451986454993905/");