Android 在混合应用程序中本地下载HTML文件
在我们的混合应用程序中,我们需要在应用程序中本地维护HTML。这些HTML在托管服务器中更改后必须在本地刷新。实现这一点的方法应该是什么?如果有一个带有最新更新的时间戳,每次启动应用程序时都检查这个时间戳,如果它比执行的最新更新更新要新,那么重新下载HTML文件怎么样?当然,这可以扩展为按文件或按目录执行,而不是仅重新下载更改的文件。您可以在WebView中加载任何HTML内容或文件 使用该方法,您可以加载任何HTML数据:Android 在混合应用程序中本地下载HTML文件,android,ios,hybrid-mobile-app,ios-web-app,Android,Ios,Hybrid Mobile App,Ios Web App,在我们的混合应用程序中,我们需要在应用程序中本地维护HTML。这些HTML在托管服务器中更改后必须在本地刷新。实现这一点的方法应该是什么?如果有一个带有最新更新的时间戳,每次启动应用程序时都检查这个时间戳,如果它比执行的最新更新更新要新,那么重新下载HTML文件怎么样?当然,这可以扩展为按文件或按目录执行,而不是仅重新下载更改的文件。您可以在WebView中加载任何HTML内容或文件 使用该方法,您可以加载任何HTML数据: //read html data from any file or r
//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");
您可以定期从服务器获取更新的数据(并将其存储在本地),也可以在用户每次连接互联网时获取更新的数据。如果您在android或iphone设备上处理移动应用程序中的HTML文件,您需要注意以下因素 1。数据处理-解析数据并在设备屏幕上呈现数据的最佳方式 假设您的HTML文件有1000个节点,每个节点将有10个子节点。现在,您尝试根据第800个节点中的键获取一个值。现在发生的是,解析器在找到搜索值之前读取1到800个节点中的每个节点。这将造成非常糟糕的用户体验 为了避免这种情况,对于android移动应用程序,使用JSON文件格式;对于iOS设备,使用PLIST文件格式 由于您的目标是一个混合应用程序,它可能同时在android和iphone设备上运行。所以,在服务器中,创建转换数学并相应地向设备呈现适当的文件 2。数据加载—应用程序与服务器同步以更新HTML文件时要记住的事项。 电池利用率-如果您的应用程序定期访问服务器以查看HTML文件是否有任何更新,则会对设备电池造成很大影响,并且应用程序的网络利用率也会很高 我建议的方法是,如果文件有任何更新,服务器应该将消息推送到应用程序。基于此,用户可以选择更新应用程序 启动文件同步之前要做的事情。
我的混合应用背景:我喜欢它们。我遇到了许多问题,并已修复了几乎所有问题 当我遇到需要在多个设备上使用服务器或数据库的情况时,我喜欢这样做 台阶
通过这样做,您将实现什么:
.html
文件缓存到客户端,这样他们以后就可以在没有网络连接的情况下查看页面<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Google</title>
<meta name="description" content="">
<meta name="author" content="">
</head>
<body>
<h1>Hello there</h1>
<p>Welcome to this webpage</p>
</body>
</html>
var win = Titanium.UI.createWindow({
title:"Loading Local and Remote Web Pages",
backgroundColor:"#FFFFFF",
});
var loadLocalButton = Titanium.UI.createButton({
title:"Load local",
height:36,
width:100,
bottom:12,
left:12
});
var loadRemoteButton = Titanium.UI.createButton({
title:"Load remote",
height:36,
width:100,
bottom:12,
right:12
});
var webView = Titanium.UI.createWebView({
top:0,
left:0
});
loadLocalButton.addEventListener("click", function(e){
//You can load from a local webpage (e.g. a webpage in the Resources folder of your project)
webView.url = "html/index.html";
//or you can load an HTML-formatted string
webView.html = "<h1>This is from a string</h1><p>Yes, it is</p>";
});
loadRemoteButton.addEventListener("click", function(e){
webView.url = "http://www.google.com";
});
win.add(webView);
win.add(loadLocalButton);
win.add(loadRemoteButton);
win.open();
谷歌
你好
欢迎浏览本网页
下面是app.js文件的详细信息
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Google</title>
<meta name="description" content="">
<meta name="author" content="">
</head>
<body>
<h1>Hello there</h1>
<p>Welcome to this webpage</p>
</body>
</html>
var win = Titanium.UI.createWindow({
title:"Loading Local and Remote Web Pages",
backgroundColor:"#FFFFFF",
});
var loadLocalButton = Titanium.UI.createButton({
title:"Load local",
height:36,
width:100,
bottom:12,
left:12
});
var loadRemoteButton = Titanium.UI.createButton({
title:"Load remote",
height:36,
width:100,
bottom:12,
right:12
});
var webView = Titanium.UI.createWebView({
top:0,
left:0
});
loadLocalButton.addEventListener("click", function(e){
//You can load from a local webpage (e.g. a webpage in the Resources folder of your project)
webView.url = "html/index.html";
//or you can load an HTML-formatted string
webView.html = "<h1>This is from a string</h1><p>Yes, it is</p>";
});
loadRemoteButton.addEventListener("click", function(e){
webView.url = "http://www.google.com";
});
win.add(webView);
win.add(loadLocalButton);
win.add(loadRemoteButton);
win.open();
var win=tianium.UI.createWindow({
标题:“加载本地和远程网页”,
背景颜色:“FFFFFF”,
});
var loadLocalButton=Titanium.UI.createButton({
标题:“加载本地”,
身高:36,
宽度:100,
底图:12,
左:12
});
var loadRemoteButton=Titanium.UI.createButton({
标题:“加载远程”,
身高:36,
宽度:100,
底图:12,
右:12
});
var webView=Titanium.UI.createWebView({
排名:0,
左:0
});
loadLocalButton.addEventListener(“单击”),函数(e){
//您可以从本地网页加载(例如,项目资源文件夹中的网页)
webView.url=“html/index.html”;
//也可以加载HTML格式的字符串
webView.html=“这是一个字符串是的,它是”;
});
loadRemoteButton.addEventListener(“单击”),函数(e){
webView.url=”http://www.google.com";
});
win.add(webView);
添加(loadLocalButton);
添加(loadRemoteButton);
win.open();
如何在托管服务器上维护HTML文件?是否有生成它们的程序,或者它们是手动安装在那里的。它们是否也保存在目录或数据库中?最后,您需要以多快的速度刷新更新的文件?例如,是否可以每天进行一次,或者是否需要立即进行?