将HTML文件加载到WebView中

时间:2011-04-21 20:41:51

标签: android android-webview local

我有一个本地html页面以及它所指向的其他几个资源(css文件和Javascript库),我想加载到WebView中。怎么可以实现呢?

也许不是最好的方法,但我还在尝试。

5 个答案:

答案 0 :(得分:326)

最简单的方法可能是将您的网络资源放入资源文件夹,然后致电:

webView.loadUrl("file:///android_asset/filename.html");

用于Java和Webview之间的完整通信See This

更新:资产文件夹通常是以下文件夹: <project>/src/main/assets 这可以在 <app>.iml文件中的资产文件夹配置设置中更改为:

<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” /> 请参阅文章Where to place the assets folder in Android Studio

答案 1 :(得分:23)

这个样本可能会有所帮助:

  WebView lWebView = (WebView)findViewById(R.id.webView);
  File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
  lWebView.loadUrl("file:///" + lFile.getAbsolutePath());

答案 2 :(得分:6)

在这种情况下,使用WebView#loadDataWithBaseUrl()优于WebView#loadUrl()

webView.loadDataWithBaseURL(url, 
        data,
        "text/html",
        "utf-8",
        null);

url:url / path指向所有JavaScript文件和html链接的目录的字符串。如果为null,则为:空白。 data:包含hmtl文件的字符串,使用BufferedReader读取,例如

更多信息:WebView.loadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)

答案 3 :(得分:0)

已接受的答案对我不起作用,这对我有用

WebSettings webSetting = webView.getSettings();
    webSetting.setBuiltInZoomControls(true);
    webView1.setWebViewClient(new WebViewClient());

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

答案 4 :(得分:0)

XML 布局文件:

<WebView android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/webView"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".activities.Bani9">
</WebView>

Java 代码:

public class Bani9 extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bani9);
        webView = findViewById(R.id.webView);
        WebSettings webSetting = webView.getSettings();
        webSetting.setBuiltInZoomControls(true);
        webView.setWebViewClient(new WebViewClient());

        webView.loadUrl("file:///android_asset/punjabi/bani9.html");
    }
}

确保准确设置文件路径。 Make sure you set File Path properly