【问题标题】:WebView not displaying data from html fileWebView 不显示来自 html 文件的数据
【发布时间】:2011-05-18 15:53:10
【问题描述】:

我的 Android 应用上有一个页面,该页面将使用以下代码显示 html 文件的内容 -

 public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.intro);

      WebView wv = (WebView) findViewById(R.id.WebView01);
      try {
          InputStream fin;
          fin = getAssets().open("Preface.html");
          byte[] buffer = new byte[fin.available()];
          fin.read(buffer);
          fin.close();
          wv.loadData(new String(buffer), "text/html", "UTF-8");
       } catch (IOException e) {
          e.printStackTrace();
       }
 }

代码运行正常,但网页视图中没有显示内容,我做错了什么?

【问题讨论】:

    标签: android android-layout android-webview


    【解决方案1】:

    使用

    wv.loadUrl("file:///android_asset/Preface.html");
    

    确保您的文件 Preface.html 在您的 android assets/ 文件夹中

    或者如果您的 html 文件包含 javascript 代码,请启用 javascript 支持

    WebView wv = (WebView) findViewById(R.id.WebView01);
          try {
              InputStream fin;
              fin = getAssets().open("Preface.html");
              byte[] buffer = new byte[fin.available()];
              fin.read(buffer);
              fin.close();
              wv.loadData(new String(buffer), "text/html", "UTF-8");
        WebSettings webSettings = wv.getSettings();
        wv.setJavaScriptEnabled(true);
           } catch (IOException e) {
              e.printStackTrace();
           }
    

    如果这不能解决您的问题,请粘贴您的 html 代码。

    【讨论】:

    • 不幸的是 wv.loadUrl.. 不起作用,当我尝试上面的代码时,我收到一个错误,提示 setJaveScriptEnabled 未定义。奇怪的是,当我使用代码 WebView webview = new WebView(this); 动态加载 webview 时设置内容视图(网络视图); html 加载完美,它只是不会加载到组件中。
    【解决方案2】:

    首先,在LogCat中显示你下载的文件内容,看看下载是否成功

    【讨论】:

    • 下载没问题,因为如果我使用代码动态加载 html 文件 - WebView wv = new WebView(this);设置内容视图(wv);文件加载没有问题。
    【解决方案3】:

    有时会发生的情况是,您的屏幕尺寸太小而无法在屏幕上显示内容。确保您在屏幕上使用更大的显示分辨率。

    【讨论】:

    • 为此,他可以使用一个scrollView,然后在其中使用一个webView,
    【解决方案4】:

    我的以下代码从 Url 加载 html-content 并将其显示在 webview 中,希望它对您有所帮助:

    MainActivity.java

    String htmlContent = getHtmlContent();
                if (htmlContent != null) {
                    webView.getSettings().setBuiltInZoomControls(true);
                    webView.loadData(htmlContent, fileType.endsWith("rfc822") ? "rfc822" : "text/html", "UTF-8");
                }
    

    getHtmlContent方法

    DownloadTask task = new DownloadTask();
    
        try {
            String result = String.valueOf(task.execute(currentFileUrl).get());
            if (task.getStatus() == AsyncTask.Status.RUNNING) {
                loadingProgressBar.setVisibility(View.GONE);
            }
            return result;
        } catch (ExecutionException | InterruptedException e) {
            e.printStackTrace();
        }
    
        return null;
    

    DownloadTask.java

    public class DownloadTask extends AsyncTask<String, Void, StringBuilder> {
    
    
    @Override
    protected StringBuilder doInBackground(String... urls) {
    
        StringBuilder result = new StringBuilder();
        URL url;
        HttpURLConnection connection;
    
        try {
            url = new URL(urls[0]);
            connection = (HttpURLConnection) url.openConnection();
            InputStream in = connection.getInputStream();
            InputStreamReader reader = new InputStreamReader(in);
            int data = reader.read();
    
            while (data != -1) {
                char current = (char) data;
                result.append(current);
                data = reader.read();
            }
    
            return result;
    
        } catch (IOException e) {
            e.printStackTrace();
        }
    
    
    
        return null;
    }
    

    }

    希望它可以帮助那里的人。 我遇到的一个问题是 WebView 没有显示内容,我通过设置 WebView webview = findViewById(R.id.webView); 解决了它 并删除webview = new WebView(this);

    【讨论】:

      猜你喜欢
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      相关资源
      最近更新 更多