关于原生开发好,还是混合模式开发好,还是 套壳的方式好,在这里不是重点,没有最好的,只有相对适合的。 重点是 那种方式 以最低的资源代价 适合你的业务场景,适合你的团队,根据实际情况来做技术选型。
1,使用h5替代android的view xml 前端将写好的h5 页面放在android 工程的asset目录, 打包的时候会将h5页面一起打在apk里面, 此时 h5中的ajax交互在webview中是 可以跨域请求的。 所以最终 android就是一个壳和主要的入口,剩下的开发就像开发h5 微站一样了 这的好处是:android人力不足,前端人力充足的情况下,同时适合业务场景,以及报表展示场景。 html页面放在asset的好吃是加载快,app与云端的接口交互都是ajax json数据交互。 缺点:html 在apk包中,更改需要升级apk。
2,混合模式 在方式一的基础上中和一下,将 部分功能用h5来替代, 比如 关于我们,帮助中心,这种需要云端 频繁进行内容变更的 再比如:复杂报表展示,这种用h5中嵌入的hichartis,echarts比较方便。
3,云端模式+缓存 对于部分 更新比较频繁的 可以采用直接 webview链接云端页面地址的方式 这种方式 更新频繁,为了提高速度,避免不必要的重复请求,可以设置页面缓存 将 页面中 固定不变的 css js 图片等文件 缓存起来,来提升页面加载速度
H5的缓存方式有以下几种: 1,Cache-Control 与 Last-Modified 是浏览器内核的机制 可以在页面代码中写,也可以在nginx 中配置浏览器中缓存的有效时长 2,使用localstorage sessionStorage 进行数据缓存
关于h5的离线缓存 机制(文档:http://www.w3school.com.cn/html5/html_5_app_cache.asp )
或Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件、资源,当第一次打开时,浏览器会自动缓存相应的资源 Manifest 的特点:
离线浏览:即当网络断开时,可以继续访问你的页面。 访问速度快:将文件缓存到本地,不需每次都从网络上请求。 稳定性:做了Manifest缓存,遇到突发网络故障或者服务器故障,继续访问本地缓存。