【问题标题】:android host files from internal storage(locally)来自内部存储的 android 主机文件(本地)
【发布时间】:2016-09-27 10:29:22
【问题描述】:

我想在本地托管内部存储中的文件。我浏览了谷歌的webview local server,但你只能托管资产文件夹中的文件。我想从内部存储中托管文件,因为我有能力修改它,这在资产文件夹中无法完成。

如果可能的话,谁能告诉我它背后的逻辑?任何其他建议将不胜感激。

【问题讨论】:

  • 嗯,我不知道托管文件是什么意思,但如果可以从资产中完成,那么更改代码以使用文件应该不会太难。你到底有什么问题?
  • 对于其余部分,我认为使用 NanoHttpD 更容易实现以提供一些本地文件。
  • 托管就像使用内部存储文件创建本地服务器一样。 google web view本地服务器中没有指定文件路径默认定义了destination(asset folder)。
  • 在 NanoHttpD 中,他们只在 localhost 中托管一个文件,但我想在一个文件夹中托管多个文件并通过 http 访问它们。
  • 您可以使用 NanoHttpD 托管任意数量的文件。是什么让你认为这是不可能的?如果不可能,那将是一个糟糕的服务器。

标签: java android localserver android-internal-storage


【解决方案1】:

你可以使用WebViewloadUrl(String url)方法:

String filePath = context.getFilesDir() + File.separator + "page.html";
webView.loadUrl("file://" + filePath);

【讨论】:

    【解决方案2】:

    在 android 应用程序中,可以从 APK 内的 Assets 文件夹以外的 2 个位置读取文件。由于这些是普通的 HTML、CSS 和 JS 文件,它们不需要通过本地服务器专门托管,而是可以在 WebView 中正常显示。

    1. 内部存储: URL 采用file:///folder/file.html 的形式
    2. 外部存储:使用 Environment.getExternalStorageDirectory() 方法。 String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "folder/file.html"

    或者,您可以使用 Ionic 并利用 Ionic Deploy 服务来更新应用程序的基于 Web 的组件,如 here 所示。这也可以在本地完成,但是您必须在应用程序中为此编写一个服务,以检查部署服务器上的最新代码库,然后用新文件替换现有文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多