app嵌html屡见不鲜, 本文描述加载简单的html网页。
首先说明需求: 有网的状态直接从获取html网页并且缓存, 无网状态先从缓存读取html, 若不成功则加载本地html文件, 并且将本地html文件写入缓存, 以便下次读取.
1.加载html网页, viewWillAppear或者viewDidLoad.
以下QAUrl均为html完整的url
2.若成功, 就在成功的代理方法里, 将网页端html写入缓存
3.不成功,在失败的代理方法里, 加载磁盘缓存或者本地html,其中isNetConnected是指是否连接到互联网, 默认是true,加载失败后置为false.
fileprivate var isNetConnected: Bool = true // 是否连接到互联网
4.同样,此次成功后,在代理方法里,将本地html文件写入缓存
5.代理方法的里很简洁
6.需要注意的是
(1)拼接缓存地址时, 如果html的URL类似于" http://10.0.4.2:82/app/qa.html ",不能作为地址拼接,否则无法缓存.
(2)笔者将拼接地址统一写成"/Caches/feedback.html",若有新的缓存,则地址被覆盖,不会导致缓存多个相同文件,一般无需清理或者导致内存警告
(3)本文不涉及缓存图片, js交互等问题
7.补充:
开发过程中,笔者又遇到了一个问题,有网的情况下,网页也可能出现加载不成功.这个时候如果只是加载网页就会什么都没有.所以在viewWillAppear或者viewDidLoad里应该有个判断
如果请求request返回的finish是true即成功,则加载html网页,不成功则加载缓存.
1、当我们没有引入外部css样式表的时候,一般情况下我们会在html里写样式,而又两种方式使我们常见的,第一种:
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<title>time元素</title>
</head>
<body>
<div style="height:300pxwidth:500pxbackground:#999"></div>
</body>
2、第二种写法:
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<title>time元素</title>
<style>
.all{
height:300px
width:500px
background:#999}
</style>
</head>
<body>
3、建立一个css样式表文件
4、存储在css文件夹中
5、在html文件中写入链接代码,代码如下:
<link rel="stylesheet" type="text/css" href="css/index.css" />
6、之后可以看到HTML文件的源代码傍边看到我们所连接的css文件,此时就连接成功。
src 是指向物件的来源。
href是指向需要连结的地方。
url是通用的 "连结" 的专业代名词,在 HTML语法里几乎不会使用。
url不是属性,src和href是属性,src用于替换当前元素,href用于在当前文档和引用资源之间确立联系,也就是说src引用的路径是img自己的路径,href引用的路径是要跳转到的地方。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)