在webview上加载html页面而不使用Web服务器

时间:2016-01-21 12:24:25

标签: android html webview webserver android-assets

有没有办法在不使用网络服务器的情况下在webview上加载html页面?

在我的Android应用程序中,我有一个Web服务器,因为用户可以保存他想要的网页,以后可以离线访问它们。

我尝试过assets文件夹,但我无法在运行时修改它。我只能阅读我放在那里的文件。

要在线或离线加载我使用webview的方法: 浏览器是webview。

    browser.setWebViewClient(new client());
    browser.getSettings().setJavaScriptEnabled(true);
    browser.getSettings().setDomStorageEnabled(true);
    browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    browser.getSettings().setUseWideViewPort(true);
    browser.loadUrl(url);

网址可以是:

http://stackoverflow.com正常的

http://localhost:8080“; //应用内的网络服务器

或来自资产文件夹

文件:///android_asset/file.html

但是我怎么说,使用可以节省很多页面,并在他想要的时候看到它。

是否有方法在webview上加载保存在内部存储器中的页面?

   URL =this.getApplicationContext().getFilesDir()+"/www/file.html";
        browser.loadUrl(URL);

例如:webview.loadString(); ?

1 个答案:

答案 0 :(得分:2)

类似于browser.loadUrl(Uri.fromFile(f).toString())的内容应该适用于名为File的{​​{1}}对象,指向您想要的文件。 f将为您提供正确方案的Uri.fromFile(); Uri为您提供了传递给toString()的字符串表示形式。我使用此(或变体)来读取外部存储上的文件。 AFAIK,它也适用于内部存储上的文件。