首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS的WebView——WKWebView

前言 在iOS8,苹果推出了WKWebViewWKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。...WKWebView的设置 WKWebView的主要设置项都在configuration成员(比如是否允许浏览器手指缩放,h5的浏览器能否自动播放等)这些都属于浏览器本身的设置项。...WKNavigationDelegate 如命名,这个是WKWebView的导航的代理。它控制了WKWebView加载一个页面流程的各个关键时间节点的。...相当于WKWebView加载的生命周期方法。...此方法的本质是,js会尝试加载某个URL,客户端在加载前拦截这个URL,通过解析这个URL识别它的内容,调用相应的原生方法,并阻上浏览器加载这个URL

3.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

分享超详细 WKWebView 开发和使用经验

WKWebView 几个不常用的特性 WKWebview 加载过程的性能指标图解 WKWebview 秒开的实践及踩坑之路 今天分享的这篇文章全面的介绍了 WKWebView,作者根据开发和使用经验从属性...*initialURL; 其中 initialURL 和 URL 的区别: initialURL 为本次网页加载的初始请求 URL 为本次网页加载结束后的最终请求 两者 URL 区别在于首次发起 302...WKWebView 属性 webView 属性 title: 网页的标题,一般为 html 的内容 URL: 网页的URL地址,为最终加载的地址 loading:...网页是否处于加载,YES 加载、 NO 加载完成 estimatedProgress: 网页加载进度 hasOnlySecureContent: 网页上的所有资源是否已通过 https 加载 serverTrust...FAQ WKWebView H5 css 动画失效的问题?

4.6K30

​# iOS WKWebView适配(基础篇)

"]; 4.WKUIDelegate wkwebview.UIDelegate属性 用户js调用alert,confirm,prompt,如果不适配则无法使用对应js功能,估计是安全问题,因为使用中有的会采用这个作为...为了兼容iOS8的js通信,也可以在这里拦截url做bridge分发 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction...cachePolicy:cachePolicy timeoutInterval:0]; 然后发起请求 [self.wkWebView loadFileURL:request.URL allowingReadAccessToURL..."file:///"头部替换 4.加载源代码 直接把html文件读出来以后,以页面内容方式去读取 [self.wkWebView loadHTMLString:htmlString baseURL:nil...]; 5.离线资源包的一点思考 利用离线加载这一特性,我们可以通过服务端资源打包成本地资源包(zip包),通过服务器比对方式下载资源包,解压后放在本地指定的沙盒目录,随后通过wkwebview加载本地方式打开页面

3.6K30

iOSWebKit框架应用与解析 原

iOSWebKit框架应用与解析 一、引言         在iOS8之前,在应用嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序...iOS9后可用 config.applicationNameForUserAgent = @"HS"; 四、WKWebView的属性和方法解析         下面列举了WKWebView中常用的属性和方法...@property (nullable, nonatomic, readonly, copy) NSURL *URL; //网页是否正在加载 @property (nonatomic, readonly...{ } //主页加载完成时调用 -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{...:(NSError *)error{ } //主页数据加载发生错误时调用 -(void)webView:(WKWebView *)webView didFailProvisionalNavigation

1.9K40

WKWebView的使用与JS交互详细解读

一:和UIWebView相比它的不同处 1:和JS更好的做交互,也支持H5的一些新特性 2:加载进度条(下面会演示) 3:性能高,加载变得更快更可靠 二:从加载一张网页开始 1:使用这个WKWebView...:(WKNavigation *)navigation { NSLog(@"页面开始加载"); } // 加载内容 -(void)webView:(WKWebView *)webView...WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { NSLog(@"页面加载完成"); } // 页面加载失败...:(NSError *)error { NSLog(@"页面加载失败"); } // 接收到服务器重新配置请求之后再执行 -(void)webView:(WKWebView *)webView...[18155:211964] 页面加载完成 * */ // API是根据客户端受到的服务器响应头以及response相关信息来决定是否可以跳转 -(void)webView:(WKWebView *

3K70

iOS WebView 的 Hybrid 框架设计

Hybrid APP 框架 一个完整的 Hybrid APP 框架主要包括 WebView 容器、Bridge、UI、预加载、缓存等模块儿,当然 Bridge、预加载、缓存等也需要相应前后端的支持,比如发布平台...本文主要对 WebView、Bridge、Header 设计进行介绍,后续文章会对账号信息设计、预加载和缓存进行持续跟进。...本套框架的预加载和缓存模块儿需要借助 NSURLProtocol 实现,所以这里还是优先使用 UIWebView(想吐个槽,其实如果预加载和缓存这套系统做好以后,UIWebView 的效果并没不比 WKWebView...差),这里也不能把 WKWebView 一棒子打死不用,对于那些对无需预加载和缓存的页面,可以为前端提供参数(比如 wkwebview=true)让前端自己的去选择是否使用 WKWebView,所以这里需要对...hybrid_params={params need encode}&callback=callback_ID 客户端需要根据约定,在 Bridge 处理结束后通过 WebView window 对象

1.6K10

技术 | Hybrid载体的变化(一)

,我对于他的理解,苹果在iOS8推出的新框架“Webkit”,其中WKWebView就是用来替换原来的UIWebView,一句话,你用它原来UIWebView出现的各种问题都被解决了。...当然随之而来的会有一些小问题,比如:WKWebView是一个独立进程,那么它的请求就无法通过系统的URL SYSTEM了,你无法像UIWebView一样,可以通过NSURLProtocol来拦截所有的请求...至于你想到的如何加载网页,其实很简单,一个load而已。 self.wkWebView?....我们知道WKWebView是一个独立的进程,它的请求都不经过系统的URL SYSTEM,我们很难拦截它,该怎么办?..., withError error: Error) { // 页面加载错误 print(error) } 每一个delegate实现你都应该去做一条日志的记录或者是页面加载完成时间

83330

WKWebView 白屏问题

1、WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程执行。...初次适配 WKWebView 的时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 的内存占用会增加。...在一些用 webGL 渲染的复杂页面,使用 WKWebView 总体的内存占用(App Process Memory + Other Process Memory)不见得比 UIWebView 少很多。...在 WKWebView加载下面的测试链接可以稳定重现白屏现象: http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候 WKWebView.URL...[webView reload](这个时候 webView.URL 取值尚不为 nil)解决白屏问题。

4.3K20

WKWebView

在iOS加载网页目前有两种控件:UIWebView和WKWebView。...2,WKWebView拥有与Safari相同的Nitro JavaScript引擎,大大提高了页面JS执行速度;但是UIWebView不支持Nitro JavaScript引擎,所以加载较慢。...页面标题 URL。活动网址 customUserAgent。自定义用户代理字符串 设置委托 navigationDelegate UIDelegate 加载内容 estimatedProgress。...创建并初始化一个WKWebView 设置WebView的navigationDelegate、UIDelegate、configuration等 加载URL或者HTML字符串 在相应的代理方法回调处理业务逻辑..., 6,上面讲到,我们可以使用KVO来监听WKWebView的estimatedProgress属性值的变化来实现加载进度条,那么WKWebView还有那些属性值的变化也是可以被KVO监听到的呢?

5.9K20
领券