android - Web View 未在 API 级别 19 (KITKAT) 中加载

标签 android webview android-4.4-kitkat

我在 Android 中使用 webView 并尝试检查 API 级别大于或等于 19 的 Android。我的代码适用于大于或等于 19 的 API 级别,但 WebView 没有在 API 级别 19 中打开。有人可以检查一下吗这个出来 这是代码:

    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;
}

最佳答案

在 API 级别 19 中,函数 setInitialScale(int scaleInPercent) 不起作用。这就是代码在 API 级别高于 19 时运行良好的原因。从我的代码中删除 mWebView.setInitialScale(1); 后,它也适用于 API 级别 19。

关于android - Web View 未在 API 级别 19 (KITKAT) 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36717460/

相关文章:

android - 覆盖来电屏幕?

java - 如何在android中将Unicode字符串转换为文本

java - 迁移到android studio 3.1后出现奇怪的bug

android - ADT18、App Engine 连接的 Android 项目和 noclassdeffounderror

android - Android Webview 中的证书固定

webview - 在 Xamarin.Forms 中禁用 WebView 滚动

android - 奇巧 : How to route APDUs to the SIM

android - map fragment 在 Android 4.4 kitkat 中不起作用

android - 当我单击“ ListView 内容”时,它们是通过不在我的应用程序中的 Web 浏览器打开的

android - 永久隐藏 Android 状态栏