打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
为什么要做这个看起来不靠谱的东西呢?
由于刚学android开发,还不能非常好的熟练控制android界面的编辑和操作,所以我的一个急着要的运用就改为html5版本号了,反正这个运用也是须要从server获取大量数据来展示在手机上面的,也就是说:必须联网,才干正常工作,于是想了一下,反正都要联网获取数据,为什么不直接用我相对熟悉一点的 html来做这个运用呢?省的花费不够用的时间去学习android界面的控制,于是就简单了:用蹩脚的手段做了一个android程序的启动欢迎界面,内页就是一个全屏的webview,启动后就连上IISserver获取网页展示,就能够了。
但是话说回来,这样不如直接写一个手机版网页网站,用手机内建浏览器打开看即可了嘛,为什么还得大费周章弄APP呢?由于......这个APP还要有通知栏提醒功能,执行一个后台服务获取server上提供的预警等信息,所以光网页版是不够的,于是就生出了这个怪异的APP。
做好的app放在server上,本来图省事,apk文件压缩成zip包,给客户下载,结果......无语的是,好多客户手机上没有解压软件,并且还不会自己下载安装解压软件,没办法,仅仅好把iis加上支持apk下载的功能了,之前试过IIS默认安装后,IIS是不支持apk文件下载的,还好资料好查,加入个apk下载支持也超简单,就顺手弄了。
另外,考虑到网页版运用消耗流量肯定非常大,为了节省流量,就顺手引入了html5的缓存功能,可是这个功能中的一个重要文件:缓存列表 文件,貌似用直接用txt做扩展名的不行。非得用那个默认的扩展名(不知道其它扩展名行不行,可是貌似都得设置那个扩展名的MIME类型才干够),这个扩展名的支持也是IIS默认没有的,也要手工加入,还好都不算复杂。
可是网上都没有找到图片实例,于是手闲之余,顺便做个记录,就抓了个简单的图,奉上,这才有了这篇文章。
例如以下图:

apk下载支持:
扩展名: .apk
MIME类型:application/vnd.android.package-archive
html5缓存支持:
扩展名: .manifest
MIME类型:text/cache-manifest
apk下载支持没什么好说的了,直接把apk文件扔到server即可,以下简单说下html5缓存的一些注意要点:
1.html5可被缓存的样例:
c.html
<!DOCTYPE html>
<html manifest="./mymanifest.manifest">
<body>
<script type="text/javascript" src="./js/demo_time.js">
</script>
<p id="timePara"><button onclick="getDateTime()">获得日期和事件</button></p>
<p><img src="./i/w3school_banner.gif" /></p>
<p>请打开<a href="./html5_html_manifest.html" target="_blank">这个页面</a>,然后脱机浏览,又一次载入页面。页面中的脚本和图像依旧可用。</p>
</body>
</html>
偷了个懒,直接用w3school的样例来弄了: http://www.w3school.com.cn/example/html5/html5_html_manifest.html
它这个样例不知道怎么的,貌似它IIS没设置还是怎么,反正我測试缓存是失败的。
上面文件里引用到的文件有:
./mymanifest.manifest
./js/demo_time.js
./i/w3school_banner.gif
为了測试 FALLBACK: 所以有益没有放 ./html5_html_manifest.html 在server上。依照以上弄好html主文件后,以下就是编写缓存列表文件:
2.缓存列表文件编写
CACHE MANIFEST
# 2014-05-22 v1.0.0
CACHE:
./i/w3school_banner.gif
./js/demo_time.js NETWORK:
login.asp FALLBACK:
/ ./err/404.html
上面就是一个完整的缓存列表文件的样例,能够看到没增加 ./html5_html_manifest.html ,为了測试最后一个FALLBACK的效果,前面几个标签没什么好说的,网络上样例和说明一大把,着重说下最后一个失效时回调的页面设置,这里一行为一个单位,一行有两个元素,第一个是网络正常或文件存在时调用的页面,后跟一个空格和第一个元素隔开,第二和元素就是网络不通,或者文件不存在是的替换页面,上面的样例中,第一个元素用 / 符号取代,表示全部未找到或网络未连接时无法訪问的文件都用后面这个文件
./err/404.html 替换显示。/ 在这里是通配符的作用,类似 * 。
3.webview设置
当然,假设你的浏览器本身支持缓存的话,那么这里以下的内容你就不必看了,上面设置完成后,你的页面就能够被顺利缓存了。
可是我打造的是自己引用webview做的APP,默认缓存是关闭的,那么就必须对webview进行设置,否则照样不能缓存:这里仅仅给出webview设置的代码片段了,具体的调用webview的样例网上一大把,在此不做冗述。
WebSettings webseting = mWebView.getSettings();
webseting.setJavaScriptEnabled(true); //js支持
webseting.setSupportZoom(true);
webseting.setDefaultTextEncodingName("gb2312"); //默认代码页
mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); //滚动栏
mWebView.requestFocus();
//以下为缓存开启和设置的部分。
webseting.setDomStorageEnabled(true); /*假设须要存储一些简单的用key/value对就可以解决的数据,DOM Storage是很完美的方案。
* 依据作用范围的不同,有Session Storage和Local Storage两种,
* 分别用于会话级别的存储(页面关闭即消失)和本地化存储(除非主动删除,否则数据永远不会过期)。
*/
webseting.setAppCacheMaxSize(1024*1024*8);//设置缓冲大小,我设的是8M
String appCacheDir = this .getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath(); //设置缓存路径
webseting.setAppCachePath(appCacheDir); //设置缓存路径
webseting.setAllowFileAccess(true); //设置能够訪问文件读取文件
webseting.setAppCacheEnabled(true); // 开启APP缓存
webseting.setCacheMode(WebSettings.LOAD_DEFAULT|WebSettings.LOAD_CACHE_ELSE_NETWORK); //设置缓存模式为:依据html5缓存列表文件更新缓存和在网络未连接时使用缓存。
完毕以上4步(IIS设置算一步),你的APP才干正确的缓存网页。
打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释的更多相关文章
- .net core 支持apk下载
在 app.UseStaticFiles(); 后面加上 app.UseStaticFiles(new StaticFileOptions { //FileProvider = new Physica ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 如何设置让iis服务器支持.apk文件的下载
随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...
- IIS 服务器 支持.apk文件的下载
IIS服务器不能下载.apk文件的解决办法:既然.apk无法下载是因为没有MIME,那么添加一个MIME类型就可以了 随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站 ...
- IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置
原文:IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置 站点--右键属性--http头 ...
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...
- HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的
HTML5 离线缓存-manifest简介 HTML 5 应用程序缓存 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. 什么是应用程序缓存(A ...
- 让服务器iis支持.apk文件下载的设置方法
随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...
- 让服务器apache/iis/nginx支持.apk/ipa文件下载
服务器iis支持.apk文件下载的设置 IIS服务器不能下载.apk文件的原因:iis的默认MIME类型中没有.apk文件,所以无法下载. IIS服务器不能下载.apk文件的解决办法:既然.apk无法 ...
随机推荐
- 用response输出一个验证码
package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servle ...
- Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法
使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 ActionContext c ...
- <input>标签
一. 上传图片: type="file":上传文件 accept:选择上传的种类,图片或者是视频(/png只能上传png格式的图片) multiple="multip ...
- 支付宝支付错误 系统忙:错误代码AE150002999
今天出现支付宝支付错误,支付系统繁忙请稍等,错误码AE150002999.测试了其他连个收款方,可跳转到正常扫码支付页面,排除了代码错误. 在登录支付宝商家中,也签约了“即时到帐”功能.度娘和查看都找 ...
- vim操作命令-笔记
显示行号:在vim命令行模式下输入 :set nu 或 :set number 取消显示行号:在vim命令行模式下输入 :set nonu 或 :set nonumber 查看文件编码格式: :set ...
- CentOS 6.3 配置FTP
一.FTP的安装 .检测是否安装了FTP:[root@localhost ~]# rpm -q vsftpd 如果安装了会显示版本信息: [root@localhost ~]# vsftpd-2.0. ...
- emmet插件的导入与实用
http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.html http://www.iteye.com/news/27580 分享htm ...
- 转:PHP开发者应了解的24个库
原文来自于:http://blog.jobbole.com/54201/ 作为一个PHP开发者,现在是一个令人激动的时刻.每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库.下面是 ...
- Web工程软件升级之数据库升级(二)
升级前检查 1. 用户是否存在 awk -F: '{if($1 == "xxx") print $1}' /ect/passwd 用户名 awk -F: '{if($1 == &q ...
- 对话Facebook人工智能实验室主任、深度学习专家Yann LeCun
对话Facebook人工智能实验室主任.深度学习专家Yann LeCun Yann LeCun(燕乐存),Facebook人工智能实验室主任,NYU数据科学中心创始人,计算机科学.神经科学.电子电气科 ...