loadDataWithBaseURL空白结果

时间:2018-09-20 13:44:26

标签: android webview

我想使用UTF-8在webview中加载网站,因为我遇到了重音问题,因此我正在尝试:

myWebView.loadDataWithBaseURL("http://www.planalto.gov.br/ccivil_03/constituicao/constituicaocompilado.htm", "", "text/html", "UTF-8", null);

但是结果是黑屏。

如果我使用loadURL(“ site”),它会加载,但是我有加重问题。有什么想法吗?

编辑-

我的网络视图设置:

WebView myWebView = findViewById(R.id.webView1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setDefaultTextEncodingName("utf-8");
myWebView.setWebViewClient(new MyWebViewClient());

  public class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />

    </LinearLayout>

enter image description here

1 个答案:

答案 0 :(得分:2)

您将需要使用loadUrl来加载链接。

loadDataWithBaseUrl并不意味着将给定的baseUrl加载到WebView中。这意味着将您作为data传递的数据加载到WebViewdocumentation)中。假设您要拥有“ Hello World!”用您的WebView编写:

webview.loadDataWithBaseURL(url, "<html><body>Hello World.</body></html>", null, "UTF-8", null)

关于编码:使用loadUrl时,无需显式设置UTF-8,因为it is the default。使用ISO-8859-1适用于您要加载的特定页面:

webSettings.defaultTextEncodingName = "ISO-8859-1"