在Hybrid应用程序中本地下载HTML文件

时间:2014-12-23 09:33:53

标签: android ios hybrid-mobile-app ios-web-app

在我们的混合应用中,我们需要在应用内部本地维护HTML。这些HTML必须在托管服务器中更改后才能在本地刷新。应该采取什么方法来实现这一目标?

4 个答案:

答案 0 :(得分:1)

如果您在Android或iphone设备中处理移动应用程序中的HTML文件,则需要注意以下因素。

<强> 1。数据处理 - 解析数据并在设备屏幕上呈现数据的最佳方法

假设您的HTML文件有1000个节点,每个节点将有10个子节点。现在,您尝试根据第800个节点中的密钥获取值。现在发生的是,解析器在找到搜索值之前读取1到800个节点中的每一个。这将创建非常糟糕的用户体验。

为了避免这种情况,用于Android移动应用程序,使用JSON文件格式,对于iOS设备,使用PLIST文件格式。

由于您的目标是混合应用程序,它可能同时在Android和iphone设备上运行。因此,在服务器中,创建转换数学并相应地将适当的文件呈现给设备。

<强> 2。数据加载 - 当您的应用程序与服务器同步以更新HTML文件时要记住的事项。

电池利用率 - 如果您的应用程序不断定期访问服务器以查看HTML文件是否有任何更新,则会对设备电池产生很大影响,并且应用程序的网络利用率会很高。

我建议的方法是,如果文件有任何更新,您的服务器应该将消息推送到应用程序。基于该用户可以选择更新应用程序。

开始文件同步之前要做的事情。

  1. 之前应检查设备的当前电池电量 开始与服务器同步数据。

  2. 应检查网络状态。如果设备升级应该发生 已连接到wifi。

  3. 根据用户位置和时间戳,您可以选择在用户未使用手机时执行同步。

答案 1 :(得分:0)

如果有可用的最新更新的时间戳,每次应用程序启动时检查这个时间戳,如果它比最新的更新更新,那么重新下载HTML文件怎么样?这当然可以扩展为基于每个文件或每个目录执行,而不是仅重新下载更改的文件。

答案 2 :(得分:0)

您可以在WebView中加载任何HTML内容或文件

使用loadDataWithBaseURL()方法,您可以加载任何 HTML数据

//read html data from any file or resource
String HTML = "<html><head><title>TITLE</title></head><body><center><b>MY BODY</b></center></body></html>"; 
//load HTML inside webview
webView.loadDataWithBaseURL(null, HTML, "text/html", "utf-8", null);

您还可以直接从文件加载数据

File htmlFile = new File(Environment.getExternalStorageDirectory() + "page.html");
webView.loadUrl("file:///" + htmlFile.getAbsolutePath());

或来自资产文件夹:

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

您可以定期从服务器或每次用户获得互联网连接时获取更新的数据(并在本地存储)。

答案 3 :(得分:0)

我使用混合应用程序的背景:我喜欢它们。我遇到了许多已经发布的并且已经修复了几乎所有这些。

当我遇到需要在多个设备上使用的服务器或数据库的情况时,我喜欢这样做。

的步骤

  1. 写你的网络应用
  2. 在我免费使用的Heroku便宜的服务器上托管网页应用
  3. 运行网络服务器
  4. 在您的混合应用中,让混合应用只有一个功能,它将是一个链接到您的网络服务器的IFRAME

  5. 通过这样做您将实现的目标:

    1. 一个全天候运行的网络服务器,您不必担心服务器加热或任何其他问题
    2. 免费网络服务器
    3. 您的应用会占用较少的设备空间,因为一切都在云上
    4. 您的应用程序下载时间较短
    5. 您可以让您的应用将.html文件缓存到客户端,以便他们可以在没有网络连接的情况下查看该页面。
    6. 如果您正确缓存文件,每次连接到wifi并查看.html页面时,都应检查服务器是否有新版本的html文件。
    7. 希望这有助于=)= P