IOS进阶之WKWebView

作者:IOS进阶之WKWebView 来源:未知 2022-06-20 23:40   阅读:

此篇文章的逻辑图WKWebView简单介绍使用及注意点只能用代码创建,而且自身就支持了右滑返回手势和加载进度等一些不具备却非常好用的属性。在创建的时候

此篇文章的逻辑图

WKWebView简单介绍

使用及注意点

只能用代码创建,而且自身就支持了右滑返回手势和加载进度等一些不具备却非常好用的属性。在创建的时候,指定初始化方法中要求传入一个对象,一般我们使用默认配置就好,但是有些地方是要根据自己的情况去做更改。比如,配置中的这个属性,默认为,如果不做更改,网页中内嵌的视频就无法正常播放。

更改User-Agent

有时我们需要在添加一些额外的信息,这时就要更改默认的在使用的时候,可用如下代码(在使用之前执行)全局更改:

以上代码是全局更改,也就是说,内所有的请求的都被修改。替换为后更改全局可以继续使用上面的一段代码,或者改为用获取默认的,代码如下:

对比发现,这两种方法并没有本质的区别,一点小区别在于一个是用获取的默认,一个是用获取的默认。上面方法的缺点也是很明显的,就是内所有请求的全部被修改。

在,提供了一个非常便捷的属性去更改,就是属性。这样使用起来不仅方便,也不会全局更改,可惜的是才有,如果适配,还是要使用上面的方法。

WKWebView的相关的代理方法

的相关的代理方法分别在和以及这个与交互相关的代理方法。

  • : 此代理方法中除了原有的的四个代理方法,还增加了其他的一些方法,具体可参考我下面给出的。
  • : 此代理方法在使用中最好实现,否则遇到网页的时候,如果此代理方法没有实现,则不会出现弹框提示。
  • : 此代理方法就是和交互相关,具体介绍参考下面的专门讲解。

WKWebView使用过程中的坑

WKWebView下面添加自定义View

因为我们有个需求是在网页下面在添加一个,用来展示此链接内容的相关评论。在使用的时候,做法非常简单粗暴,在的后面添加一个自定义,然后根据的高度,在改变一下的属性。以为也可以这样简单粗暴的去搞一下,结果却并不是这样。

首先改变的的属性,系统会在下一次帧率刷新的时候,再给你改变回原有的,这样这条路就行不通了。我马上想到了另一个办法,改变的这个系统倒不会在变化回原来的,自以为完事大吉。后来过了两天,发现有些页面的部分区域的点击事件无法响应,百思不得其解,最后想到可能是设置的对其有了影响,事实上正是如此。查来查去,最后找到了一个解决办法是,就是当页面加载完成时,在网页下面拼一个空白的,高度就是你添加的的高度,让网页多出一个空白区域,自定义的就添加在这个空白的区域上面。这样就完美解决了此问题。具体可参考所写,核心代码如下:

WKWebView加载HTTPS的链接

已经越来越被重视,前面我也写过一系列的的相关文章HTTPS从原理到应用(四):iOS中HTTPS实际使用当加载一些的页面的时候,如果此网站使用的根证书已经内置到了手机中这些的链接可以正常的通过验证并正常加载。但是如果使用的证书(一般为自建证书)的根证书并没有内置到手机中,这时是链接是无法正常加载的,必须要做一个权限认证。开始在的时候,是把请求存储下来然后使用去重新发起请求,然后走的权限认证通道,认证通过后,在使用去加载这个请求。

在中,中提供了一个权限认证的代理方法,这是权限认证更为便捷。代理方法如下:

这个方法比原来的认证简单的多。但是使用中却发现了一个很蛋疼的问题,系统下,自建证书的链接,不调用此代理方法。查来查去,原来是一个,在中已经修复,这明显就是不管的情况了,而且此方法也没有标记在中使用,这点让我感到有点失望。这样我就又想到了换回原来的权限认证方式,但是试来试去,发现也不能使用了。所以关于自建证书的链接在下面使用加载,我没有找到很好的办法去解决此问题。这样我不得已有些链接换回了,或者在下面在换回。如果你有解决办法,也欢迎私信我,感激不尽。

和交互,在这个头文件中这个方法的注释中已经明确给出了交互办法。使用起来倒是非常的简单。创建的时候添加交互对象,并让交互对象实现中的唯一的一个代理方法。具体的方式参考Demo中的使用。

调用的时候,使用自动对交互参数包装成了对象,其属性则为传送过来的参数,为添加交互对象的时候设置的名字,以此名字可以过滤掉不属于自己的交互方法。其中可以为

而在回调的时候,不能像我原来在 Objective-C与JavaScript交互的那些事这篇文章中写的那样,传过来一个匿名函数,这边直接调用一下就完事。没有办法传过来一个匿名函数,所以回调方式,要么执行一段代码,或者就是调用那边的一个全局函数。一般是采用后者,至于端虽说暴露了一个全局函数,同样可以把这一点代码处理的很优雅。传给的参数,可以为。参考如下:

此文主要介绍了WKWebView使用中的注意点,一般也都是常用的,还有缓存等一些不是太常用的就没有具体介绍。如果在其他方面遇到问题,也欢迎你私信我共同探讨进步。
此文的Demo地址:WKWebViewDemo 如果此文对你有所帮助,请给个吧。

分享给小伙伴们:
IOS进阶之WKWebView:如果本文侵犯了您的权利, 请联系本网立即做出处理,谢谢。
当前位置:诚朴作文网 > 勇敢英文作文IOS进阶之WKWebView转载请注明出处。
上一篇:dbt 基本试用
下一篇:没有了
IOS进阶之WKWebView相关文章