javascript - onPreExecute 作为 fragment 中 webview 的预加载器

标签 javascript android android-fragments webview

我试图在将完整页面加载为 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/

相关文章:

javascript - 从 json 数组中获取值

javascript - 过滤树结构

javascript - API返回的数据中缺少一些属性,需要可靠的方法来检查属性

android - 如何获取 UTC 中的时区偏移量(如 UTC+07 :00) from a physical device?

android - DevicePolicyManager.enableSystemApp() 方法未按预期工作

java - 如何在 Android 的同一 Activity 中将日期从一个 fragment 传递到另一个 fragment ?

javascript - 反转字符串函数不起作用

android - android :attr style work?如何

java - 无法从同一 Activity 更改 Fragment 内 TextView 的文本

Android - 将搜索传递给 fragment