简体   繁体   中英

Web View did not load in API Level 19(KITKAT)

I am using webView in Android and tries to check in Android with API Level greater than or equal to 19.My code works fine for API level greater than 19 but the WebView did not open in API LEVEL 19.Can someone please check this out. Here is the code:

    public boolean loadingFinished = true;//is loading finished
public boolean redirect = false;// redirect to page
 /**
 * {@inheritDoc}
 */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.web_view, container, false);
    mWebView = (WebView) rootView.findViewById(R.id.webView);
    //initializing views
    backButton = (BUtton) rootView.findViewById(R.id.web_view_back_button);
    titleTextView = (TextView) rootView.findViewById(R.id.web_view_textView);
    progressBar = (ProgressBar) rootView.findViewById(R.id.web_view_progress_bar);
    backButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getActivity().onBackPressed();
        }
    });
    mWebView.setVisibility(View.GONE);//Visible the view after full loaded
    mWebView.setInitialScale(1);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    mWebView.setScrollbarFadingEnabled(false);
    //check for network connection if not available show error msg!!!
    if (!NetworkService.getConnectivityInfo().isConnected(getContext())) {
        progressBar.setVisibility(View.GONE);
        Toast.makeText(getContext(), getContext().getString(R.string.no_network_msg), Toast.LENGTH_SHORT).show();
    } else {
        mWebView.loadUrl("https://www.google.co.in");
    }
    progressBar.setVisibility(View.VISIBLE);
    mWebView.setWebViewClient(new WebViewClient() {

        /**
         * {@inheritDoc}
         */
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
            if (!loadingFinished) {
                redirect = true;
            }

            loadingFinished = false;
            view.loadUrl(urlNewString);
            return true;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            loadingFinished = false;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public void onPageFinished(WebView view, String url) {
            if (!redirect) {
                loadingFinished = true;
            }

            if (loadingFinished && !redirect) {
                progressBar.setVisibility(View.GONE);
                //After page is loaded then whole web-view is visible
                mWebView.setVisibility(View.VISIBLE);
            } else {
                redirect = false;
            }

        }
    });

    return rootView;
}

In API Level 19 function setInitialScale(int scaleInPercent) does not work.Thats why the code is running well on API Level greater than 19. After removing mWebView.setInitialScale(1); from my code, it works well in API level 19 also.

API 19 中的 WebView 引擎发生了变化。http: //developer.android.com/guide/webapps/migrating.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM