在我们的混合应用中,我们需要在应用内部本地维护HTML。这些HTML必须在托管服务器中更改后才能在本地刷新。应该采取什么方法来实现这一目标?
答案 0 :(得分:1)
如果您在Android或iphone设备中处理移动应用程序中的HTML文件,则需要注意以下因素。
<强> 1。数据处理 - 解析数据并在设备屏幕上呈现数据的最佳方法
假设您的HTML文件有1000个节点,每个节点将有10个子节点。现在,您尝试根据第800个节点中的密钥获取值。现在发生的是,解析器在找到搜索值之前读取1到800个节点中的每一个。这将创建非常糟糕的用户体验。
为了避免这种情况,用于Android移动应用程序,使用JSON文件格式,对于iOS设备,使用PLIST文件格式。
由于您的目标是混合应用程序,它可能同时在Android和iphone设备上运行。因此,在服务器中,创建转换数学并相应地将适当的文件呈现给设备。
<强> 2。数据加载 - 当您的应用程序与服务器同步以更新HTML文件时要记住的事项。
电池利用率 - 如果您的应用程序不断定期访问服务器以查看HTML文件是否有任何更新,则会对设备电池产生很大影响,并且应用程序的网络利用率会很高。
我建议的方法是,如果文件有任何更新,您的服务器应该将消息推送到应用程序。基于该用户可以选择更新应用程序。
开始文件同步之前要做的事情。
之前应检查设备的当前电池电量 开始与服务器同步数据。
应检查网络状态。如果设备升级应该发生 已连接到wifi。
根据用户位置和时间戳,您可以选择在用户未使用手机时执行同步。
答案 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)
我使用混合应用程序的背景:我喜欢它们。我遇到了许多已经发布的并且已经修复了几乎所有这些。
当我遇到需要在多个设备上使用的服务器或数据库的情况时,我喜欢这样做。
.html
文件缓存到客户端,以便他们可以在没有网络连接的情况下查看该页面。