web加载本地html,WKWebview加载本地html问题汇总
最近做的功能,有部分逻辑是h5实现的,我们采用了本地+网络的机制来提高h5的显示速度,首先说一下机制,
1.本地存在一份html文件+校验码
2.程序启动获取远程校验码
3.远程校验码与本地校验码,比对,不同则下载最新html文件到沙盒
4.加载html首先看沙盒路径是否有html文件,优先加载沙盒,再次加载工程内部文件
ps:这里有个下载的问题,若是沙盒相同路径存在同一文件,从网络下载的话,不会覆盖原文件,导致不能覆盖老的文件,校验出问题,
解决方法:
1.下载之前先删除相应文件(有风险)
2.设置缓冲区,下载到缓冲区完成后再删除工作区文件,拷贝缓冲区文件到工作区(推荐)
以下说一下WKWebview加载本地html文件和html字符串出现的两个问题
html加载本地html文件:
1.通常的加载方式加载工程内部或是网络数据 个别机型和系统也可以加载沙盒的html,亲测在iphone6中这种方式加载不出沙盒的数据
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"lineSte"]];// 服务器
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:@"locationPath"]];// 本地url地址
[self.webView loadRequest:self.model.URLRequest];
2.加载沙盒html文件,iphone若是需要加载沙盒html文件需要用这个方法,iOS9有效
// 这里需要两个参数,本地html文件的url地址,这里说的是文件的url而非路径
// 还有一个是html文件存放的路径一般是上级的任意一个路径都可以
[self.webView loadFileURL:self.model.URL allowingReadAccessToURL:[NSURL fileURLWithPath:self.model.allowingReadAccessPath]];
3.直接加载html字符串
[self.myWebView loadHTMLString:[self setHtmlStringWithContent:threadModel.body cssStyle:nil jsUrl:nil] baseURL:nil];
// 配置blog h5数据
- (NSString *)setHtmlStringWithContent:(NSString *)content cssStyle:(NSString *)cssStyle jsUrl:(NSString *)jsUrl{
#pragma mark = 此处添加标注 若是html文件和css,js都是本地,可以使用本地的css、js文件,若是像这种直接拼接的html 字符串,html会找不到本地的路径,只能使用网络地址
NSString *cssStyle = @"http://1.css";
NSString *jsUrl = @"http://1.js";
// 获取字体颜色r,g,b
UIColor *color = [UIColor blackColor];
const CGFloat *components = CGColorGetComponents(color.CGColor);
int r = components[0] * 255;
int g = components[1] * 255;
int b = components[2] * 255;
// 组建成#rgb的文本形式
NSString *colorStr = [NSString stringWithFormat:@"%0x%0x%0x", r, g, b];
colorStr = @"515151";
const NSString *htmlHead = @"
";
//css
NSString *css = nil;
css = [NSString stringWithFormat:@"",cssStyle];
//js
NSString *js = [NSString stringWithFormat:@"",jsUrl];
const NSString *htmlBlogContentStart = [NSString stringWithFormat:@"
const NSString *htmlBlogContentEnd = @"
";
NSString *html = [NSString stringWithFormat:@"%@%@%@%@%@%@",htmlHead,css,js,htmlBlogContentStart,content,htmlBlogContentEnd];
return html;
}
// 这种方式本身没有问题,但是像我们的需求,css和js文件放在本地,此时若是在htmlStr添加css和js的本地读取路径(路径写绝对路径),看不到任何效果,猜测自己拼接的html字符串加载本地css和js文件,会获取不到文件,没看出什么原因(知道原因的小伙伴欢迎留言)
根据上述3的情况果断联系后端,搞了css和js文件的服务器连接,解决问题
为验证本地html可加载本地css文件,创建本地html文件(文件内饮用相对路径的css和js)和css和js在同一路径下,上述1或2的方法加载html文件,样式没有问题,由此确定是自己创建html字符串没有路径,识别本地文件有问题,在此记录一下,希望能对遇到相同问题的小伙伴有点帮助
web加载本地html,WKWebview加载本地html问题汇总相关推荐
- iOS WKWebView加载本地文件之权威解说
在实际的iOS开发中,我们有很多的地方需要通过WKWebView加载本地的文件.但是由于WKWebview存在着一些跨域的问题.UIWebView直接加载的方法不能正常使用了.这里就和大家分享一下 ...
- IOS 解决WKWebView加载本地html资源文件异常处理
wkwebView加载本地资源时,有时候无法加载全css等资源文件.导致无线显示.需要做一下特殊处理: WKWebViewConfiguration *config = [[WKWebViewConf ...
- wkwebview 文件服务器,wkwebview开发常见问题(wkwebview加载本地沙盒文件)
wkwebview加载本地沙盒文件是wkwebview开发中一个很常见的问题,今天对该问题进行一个较为详细的记录 1.#pragma mark -https认证 //web项目里面,使用了https认 ...
- wkwebview 文件服务器,WKWebView 加载沙盒图片和音视频文件失败
先来段html文件(此html直接加载的真机沙盒目录下的一张图,用WKWebView 加载无法显示) 原因:貌似是WebKit现在的bug 解决办法:本地开了一个类似Apache服务器(亲测有效) 步 ...
- iOS之深入解析WKWebView加载的生命周期与代理方法
一.前言 从 WebView 开始加载一条请求,到页面完整呈现这一过程发生了什么?无论是做 WebView 性能优化还是异常问题监控与排查,都离不开对WKWebView加载的生命周期与代理方法的剖析. ...
- cesium 3dtiles 加载本地数据_深入echarts学习:加载跨域、异步、本地json数据的防坑录
1 说明: ===== 1.1 推荐指数:★★★★ 1.2 网上这方面说明,大多模棱两可,坑很多,讲透彻的不多,故本人做一个小结. 1.3 我曾介绍echarts的简单基本用法: <Echart ...
- web项目的启动时文件加载顺序
web项目的启动时文件加载顺序 转自:http://www.cnblogs.com/yw-ah/p/5751509.html 一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xm ...
- 小程序一次性上传多个本地图片,上拉加载照片以及图片加载延迟解决之道
一:小程序之一次性上传多个本地相片 最近由于项目需要所以学了下小程序,也做了一些东西,随后便有了以下的一些总结了,现在说说如何使用小程序一次性上传多个本地相片. 问题描述 最近做项目的时候要实现一个上 ...
- uiwebview 读取本地html,UIWebView加载本地HTML文件
一.准备HTML文件及其资源文件 使用UIWebView加载本地的HTML文件 index.html,在index.html中引用了本地的图片.CSS文件.JS文件以及外部的图片. index.htm ...
最新文章
- CentOS6.5上源码安装MongoDB3.2.1
- HTML基础:文本列表实例2(9)
- 设计模式学习 - 工厂模式
- wxWidgets:wxPen类用法
- boost::lexicographical_compare相关的测试程序
- Matlab中 pdist 函数详解
- iOS开发之模拟器(simulator)的复制粘贴
- MySql统计函数COUNT详解
- 大规模WebGL应用引发浏览器崩溃的几种情况及解决办法
- LoRa技术-什么是LoRa
- 【Memcached】分布式内存对象缓存系统
- 如何用java POI在excel中画线_Java中使用POI在Excel单元格中画斜线—XLS格式
- Python3:批量读取excel百度分享链接保存到百度网盘
- 这家机场扶梯安装“智能管家”,扶梯消毒仪现高招,绝了!
- Jmeter系列(32)- 详解 CSV 数据文件设置
- 俞敏洪:100个句子记完的7000单词(1)
- elasticsearch search timeout机制
- adb 操作 快速点击屏幕
- 计算机电脑桌面文字虚,字体模糊怎么调节 解决电脑字体模糊的方法大全详细图解...
- 黑盒(功能)测试以及测试用例设计
热门文章
- 严格匹配_2020湖北省考招录“刚柔并济”强调“人岗匹配”
- C语言——找出矩阵最大值
- 钥匙计数之一(HDU-1483)
- 暑期训练日志----2018.8.25
- 计算分数加减表达式的值(信息学奥赛一本通-T1079)
- NOIP2016普及组第一题:买铅笔
- 46 MM配置-采购-条件-定价过程-定义方案组
- python多目标优化_多目标优化算法(四)NSGA3(NSGAIII)论文复现以及matlab和python的代码...
- MFC对话框动态刷新图片(仿照全屏屏保)
- python 数据结构包_python 中numpy科学计算工具包——基础数据结构