【问题标题】:Enable HTML5 inside WebView在 WebView 中启用 HTML5
【发布时间】:2014-06-30 07:14:18
【问题描述】:

您好,我必须打开一个使用 HTML5WebView 中创建的网页。

根据我的需要,我在 webView 中启用了所有这些设置

    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    mWebView.getSettings().setSupportMultipleWindows(true);
    mWebView.getSettings().setSaveFormData(false);
    mWebView.getSettings().setSavePassword(false);
    mWebView.getSettings().setDomStorageEnabled(true);

    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setLightTouchEnabled(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.getSettings().setLoadWithOverviewMode(true);

还添加了

android:hardwareAccelerated="true"

Manifest.xml 文件内

但问题是网页无法在WebView 内正确加载。 UI 正在被覆盖。 当我在设备的默认浏览器中加载 WebPage 时,它​​的加载正常但不在 WebView 中。

如何使HTML5 WebPageWebView 中正确加载。

请帮忙。 提前致谢

【问题讨论】:

标签: android html android-webview


【解决方案1】:
mWebView.setWebViewClient(new Callback());  // call this in `onCreate()`



private class Callback extends WebViewClient
    {
        @Override

        public boolean shouldOverrideUrlLoading(WebView w, String s)
        {
            mWebView.loadData(URL, "text/html", "UTF-8");  // load the webview

            return true;
        }
    }

【讨论】:

    【解决方案2】:
                webview1.getSettings().setAppCacheMaxSize(5*1024*1024);
                webview1.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
                webview1.getSettings().setAllowFileAccess(true);
                webview1.getSettings().setAppCacheEnabled(true);
                webview1.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
                webview1.getSettings().setLoadWithOverviewMode(true);
                webview1.getSettings().setUseWideViewPort(true);
                webview1.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
                webview1.getSettings().setDomStorageEnabled(true);
                webview1.getSettings().setSaveFormData(true);
                webview1.getSettings().setBuiltInZoomControls(true);
                webview1.getSettings().setDisplayZoomControls(false);
                webview1.getSettings().setLoadWithOverviewMode(true);
                webview1.getSettings().setUseWideViewPort(true);
                webview1.getSettings().setLoadWithOverviewMode(true);
                webview1.getSettings().setUseWideViewPort(true);
                final WebSettings webSettings = webview1.getSettings();
                final String newUserAgent;
                newUserAgent = "Mozilla/5.0 (Android) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
                webSettings.setUserAgentString(newUserAgent);
                webview1.loadUrl("your url here");
    

    【讨论】:

    • 欢迎来到 Stack Exchange 并感谢您回答问题。网站上通常会添加某种形式的解释以及代码转储。与原始海报 (OP) 所做的相比,也许突出显示您的代码如何解决问题。
    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多