尝试从本地文件而不是从网站加载应用程序

时间:2015-08-03 15:11:03

标签: java android

我已经创建了应用程序,但它需要连接到互联网才能运行。从本质上讲,它只是通过应用程序显示网站。我想在应用程序上安装网站,以便无需连接互联网即可加载。

我已经下载了我的网页,并将其添加到Android SDK中。它保存在Java部分下。现在我用来在线加载网页的代码如下:

        mWebView = (WebView) findViewById(R.id.activity_main_webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("http://kuglerdesign.com/");
        mWebView.setWebViewClient(new MyAppWebViewClient());

我在stackoverflow上搜索了类似的问题,并找到了以下代码行:

URL url = this.getClass().getResource("/com/path/to/file.txt")

File file = new File(url.toURI());

这些来自不同的答案:

File currFile = new File(getClass().getClassLoader().getResource("the_file.txt").getFile());

我的问题是如何将这些实现到Android SDK中的文件。我只是替换所有的mWebView和WebSettings,还是我还需要它们作为HTML文件?

或者我最好将mWebView Url设置为本地文件? 所以替换以下代码行:

mWebView.loadUrl("http://kuglerdesign.com/");

这一行:

mWebView.loadUrl("file:///kuglerdesign.html");

非常感谢任何帮助。

(很遗憾在Java上是这样的新手:( ...)

1 个答案:

答案 0 :(得分:0)

您必须将html文件放入assets目录。

对于assets文件夹,

d.android.com states

  

您可以使用它来存储原始资产文件。您在此处保存的文件将按原样编译为.apk文件,并保留原始文件名。您可以使用URI以与典型文件系统相同的方式导航此目录,并使用AssetManager将文件作为字节流读取。例如,这是纹理和游戏数据的好位置。

WebView可以使用file:///android_asset/作为URI路径which can be read here直接加载您的文件。

这会让您的通话变得像mWebView.loadUrl("file:///android_asset/kuglerdesign.html");

一样简单