将HTML文件加载到WebView中

kla*_*han 181 android local android-webview

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

也许不是最好的方式,但我还在试验.

Joe*_*Joe 339

最简单的方法可能是将您的Web资源放入assets文件夹然后调用:

webView.loadUrl("file:///android_asset/filename.html");
Run Code Online (Sandbox Code Playgroud)

对于Java和Webview之间的完整通信请参阅此

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

<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” /> 请参阅文章将资源文件夹放在Android Studio中的位置

  • 这应该被标记为正确的答案,因为它确实是. (22认同)
  • 对于那些不知道如何创建资源文件夹的人,右键单击"app" - >"New" - >"Folder" - >"Assets Folder",然后单击"Finish".Android Studio将以正确的路径创建assets文件夹.而且您只需将html文件移动到新的assets文件夹即可.参考:http://stackoverflow.com/questions/18302603/where-to-place-assets-folder-in-android-studio (7认同)
  • 这个问题确实是一个FAQ. (6认同)
  • @ SK9同样适用,如果任何其他资产或预期的文件丢失,就像如果你改变你的首发活动类的名称,不更新`AndroidManifest.xml`来反映这一点.(个人而言,我建议把字符串资源的URL /文件路径,并从那里使得路径与所有该程序的其他字符串数据访问它,但是这是不是真的直接关系到资产的问题/资源依赖.) (6认同)
  • 如果你对使用资产非常不利,你可能也会把它加载成String ...(参见http://stackoverflow.com/questions/4543349/load-local-html-in-webview) (2认同)

小智 24

可能这个样本可以帮助:

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

  • 在那个在外部存储器中有html的例子中,最好将它打包在应用程序中 (3认同)

kha*_*ntt 5

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

webView.loadDataWithBaseURL(url, 
        data,
        "text/html",
        "utf-8",
        null);
Run Code Online (Sandbox Code Playgroud)

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)

  • 什么是** data **变量?请提供一个例子。 (2认同)