如何将本地 html 文件显示在 Web 视图中

How to show local html file into webview?

本文关键字:显示 Web 视图 文件 html      更新时间:2023-09-26

我想在webview中显示我的本地html文件。我使用此代码:

WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    wv=new WebView(this);
    setContentView(wv);
    try {
        InputStream stream = this.getAssets().open("index.html");
        int sreamsize = stream.available();
        byte[] bufer = new byte[sreamsize];
        stream.read(bufer);
        stream.close();
        String html= new String(bufer);
        wv.loadData(html, "text/html", "UTF-8");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

现在我可以在没有 css 和 js 效果的情况下看到 webview 中的元素。如何解决这个问题?

试试这个:-

WebView wv;  
  wv = (WebView) findViewById(R.id.webView1);  
       WebSettings webViewSettings = wv.getSettings();
       webViewSettings.setJavaScriptEnabled(true);
       webViewSettings.setDomStorageEnabled(true);            
       wv.loadUrl("file:///android_asset/index.html");

试试这个:-

  WebView wv;  
  wv = (WebView) findViewById(R.id.webView1);  
  wv.loadUrl("file:///android_asset/index.html"); 

尝试替换

try {
    InputStream stream = this.getAssets().open("index.html");
    int sreamsize = stream.available();
    byte[] bufer = new byte[sreamsize];
    stream.read(bufer);
    stream.close();
    String html= new String(bufer);
    wv.loadData(html, "text/html", "UTF-8");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

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

再试一次。

更新

为了JS得到完美的作品尝试

WebSettings webViewSettings = wv.getSettings();
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setDomStorageEnabled(true);

如@Sabari首选。

你试过只做wv.loadUrl("file:///android_asset/index.html");吗?