我试图在将完整页面加载为 webview 之前显示预加载器,但这里有一个小问题,我已经制作了预加载器,但它会一直持续下去,没有结束。
如何告诉脚本在页面加载时停止显示对话框。
public class EzFragment extends Fragment {
public ProgressDialog pDialog;
public EzFragment(){}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new getFeed().execute();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_ez, container, false);
WebView myWebView = (WebView) rootView.findViewById(R.id.webView1);
String summary = "<html><head> <link rel=\"stylesheet\" type=\"text/css\"
href=\"http://www.example.com/demo/android_connect/assets/style/jquery.fullPage.css\" /></head></html>";
myWebView.loadData(summary, "text/html", null);
myWebView.loadUrl("http://www.example.com/demo/android_connect/get_ez_webmob.php");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
return rootView;
}
private class getFeed extends AsyncTask<Void, Void, Document> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setTitle("Connect to Server");
pDialog.setMessage("This process can take a few seconds to a few minutes, depending on your Internet Connection Speed.");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Document doInBackground(Void... arg0) {
// TODO Auto-generated method stub
return null;
}
}
是否可以将 webview 添加到文档 doInBackground 以便在后台加载页面?!
最佳答案
How can I tell the script to stop showing dialog when the page is loaded .
使用 onPageFinished
关闭 ProgressDialog
,因为当页面在 WebView 中完全加载时会调用 onPageFinished
方法:
myWebView.setWebViewClient(new WebViewClient(){
//.....
@Override
public void onPageFinished(WebView view, String url) {
Log.d("mytag","Page Loading Finished!");
super.onPageFinished(myWebView, url);
// dismiss ProgressDialog here
}
});
关于javascript - onPreExecute 作为 fragment 中 webview 的预加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753001/