Android WebView 的三种使用方式

关于原生开发好,还是混合模式开发好,还是 套壳的方式好,在这里不是重点,没有最好的,只有相对适合的。 重点是 那种方式 以最低的资源代价 适合你的业务场景,适合你的团队,根据实际情况来做技术选型。

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 )

<html lang="en" manifest="index.manifest"> 或<html manifest="http://www.example.com/index.manifest">

Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件、资源,当第一次打开时,浏览器会自动缓存相应的资源 Manifest 的特点:

离线浏览:即当网络断开时,可以继续访问你的页面。 访问速度快:将文件缓存到本地,不需每次都从网络上请求。 稳定性:做了Manifest缓存,遇到突发网络故障或者服务器故障,继续访问本地缓存。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )