WKWebView有哪些坑

WKWebView有哪些坑,第1张

首先我们要知道产生白屏的原因:WKWebView之所以有更低的内存占用,是因为它是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程中执行(也就是说使用WKWebView总的内存占用不一定比UIWebView少,只是App Process Memory会减少)。在UIWebView上,当内存占用过大,当前APP会crash,而使用WKWebView,WebContent Process会crash,这个时候就产生了白屏。

- (void)webViewWebContentProcessDidTerminate:(WKWebView )webView API_AVAILABLE(macosx(1011), ios(90));

当WKWebView总体内存占用过大,页面即将白屏时,回调用上面的函数,我们可以在该函数里执行[webView reload]解决白屏问题。

不是所有白屏都会调用上面的函数,比如在h5上present相机,拍照完毕后返回,由于拍照过程消耗了大量内存,可能导致WebContent Process 被系统挂起,但是上面的函数却没有调用。此时可以在 viewWillAppear 的时候检测 webViewtitle 是否为空来 reload 页面。

WKWebView会将cookie延迟存储进NS>

       在使用WKWebView的时候,常常会碰到显示内容比实际css设置的样式不能正常显示,内容普遍的偏小。其实导致这样问题的根源是少了HTML5的 meta 标签。解决的办法可以在iOS端添加以下的内容,当然也可以让后台添加完整的HTML5的格式。如果要在iOS端指定字体的大小也是可以的(不推荐在客户端设置字体大小)。

客户端添加 meta 标签eg:

客户端设置字体大小eg:

华硕平板Z500M可以通过在设置中调整键盘的高度、宽度和位置。

具体 *** 作步骤如下:

1、在[设置]中点击[语言和输入法];

2、点击[ZenUI键盘];

3、点击 [重新调整键盘大小],则虚拟键盘的周围会出现可调节线框,按需求调整大小及位置即可。

华硕Z500M平板通过以上的步骤 *** 作后即可进行虚拟键盘的调整。

1、导入头文件

2、解决内存不释放,单独创建一个 WKScriptMessageHandler 类

3、控制器遵守协议 <WKNavigationDelegate,WKScriptMessageHandler>

4、声明WKWebView和网页进度指示器

5、创建WKWebView实例对象

6、创建网页进度加载指示器

7、实现WKWebView的代理方法

8、在页面注销的dealloc方法中移除加载进度观察者对象和注册的所有 ScriptMessageHandler

以上就是关于WKWebView有哪些坑全部的内容,包括:WKWebView有哪些坑、Android开发中怎样获取WebView的内容宽度高度、WKWebView自适应大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9777928.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存