如果WKWebView在应用程序在前台运行时终止,则将在其委托上调用webViewWebContentProcessDidTerminate
。
但是,如果应用程序在后台会发生什么?
它仍然会立即收到回调吗?它会在应用程序稍后前景化时收到回调吗?它根本不会运行吗?
我目前don't know如何触发终止-否则我只是尝试它。
我问是因为我想让它重新加载被终止的Web视图,以避免我的应用程序出现空白屏幕,但我不确定这是否真的适用于在后台运行的应用程序。
如果WKWebView在应用程序在前台运行时终止,则将在其委托上调用webViewWebContentProcessDidTerminate
。
但是,如果应用程序在后台会发生什么?
它仍然会立即收到回调吗?它会在应用程序稍后前景化时收到回调吗?它根本不会运行吗?
我目前don't know如何触发终止-否则我只是尝试它。
我问是因为我想让它重新加载被终止的Web视图,以避免我的应用程序出现空白屏幕,但我不确定这是否真的适用于在后台运行的应用程序。
3条答案
按热度按时间8fq7wneg1#
如果您正在运行模拟器,则可以从命令行终止Web内容进程以触发
webViewWebContentProcessDidTerminate
调用:字符串
标签:https://gist.github.com/jasonbekolay/dad7c446ae1b02f174dc3eb3a5ea70ee
epfja78i2#
对我来说,WKWebView只有在我的应用程序处于后台并且iOS缺乏内存以供其他应用程序在我的应用程序中终止WKWebView时才会终止。如果您再次打开应用程序,WKWebView会损坏并调用
webViewWebContentProcessDidTerminate
。试着复制@joemasilotti指出的:
1.在WKWebView处于活动状态时打开应用
1.在后台移动您的应用-不要终止它!
1.打开很多其他应用程序来使用内存,或者玩一个图形激烈的游戏。
1.尝试再次打开应用程序,您应该会看到空白/灰色屏幕。
cbwuti443#
但是,如果应用程序在后台会发生什么?它仍然会立即收到回调吗?它会在应用程序稍后前景化时收到回调吗?它根本不会运行吗?
做了一个快速测试,答案是肯定的,立即收到回调,即使应用程序在后台
我目前不知道如何触发终止-否则,我会尝试它。
字符串
x1c 0d1x的数据
型
的
型
的
型
型
型
webViewWebContentProcessDidTerminate
别担心,你可以按照我在真实的设备上模拟的方式来做。
尝试查找使用基于WebView的内容呈现的应用。
例如,Gmail应用程序。打开收件箱中的每一封电子邮件(**有用的提示:**左右滑动可以在上一封和下一封电子邮件之间导航,以使处理速度更快),并使用一段时间(最好的选择是内容密集的电子报)
另一种选择是在您的设备上使用Safari浏览器。使用它一段时间,您将能够模拟。
**注1:**请确保您没有在后台运行多个应用,否则操作系统会在后台状态下终止您的应用。当您重新打开应用时,应用将重新启动,您的努力将被浪费。
**注2:**尝试在低端设备上进行,因为它更容易模拟。
希望这个回答对大家有帮助,调试愉快!