
首先我们要知道产生白屏的原因: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自适应大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)